<SEC-DOCUMENT>0001104659-22-045933.txt : 20220414
<SEC-HEADER>0001104659-22-045933.hdr.sgml : 20220414
<ACCEPTANCE-DATETIME>20220414142544
ACCESSION NUMBER:		0001104659-22-045933
CONFORMED SUBMISSION TYPE:	40-F
PUBLIC DOCUMENT COUNT:		133
CONFORMED PERIOD OF REPORT:	20220131
FILED AS OF DATE:		20220414
DATE AS OF CHANGE:		20220414

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:		40-F
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	000-29970
		FILM NUMBER:		22826843

	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>40-F
<SEQUENCE>1
<FILENAME>dsgx-20220131x40f.htm
<DESCRIPTION>FORM 40-F
<TEXT>
<XBRL>
<?xml version='1.0' encoding='UTF-8'?>

      <!-- iXBRL document created with: Toppan Merrill Bridge iXBRL 9.6.8119.21675 -->
      <!-- Based on: iXBRL 1.1 -->
      <!-- Created on: 4/14/2022 5:56:31 PM -->
      <!-- iXBRL Library version: 1.0.8119.21683 -->
      <!-- iXBRL Service Job ID: 61ae31be-b110-4d58-bbbf-ac44f84f044f -->

  <html xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31" xmlns:dsgx="http://www.descartes.com/20220131" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-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:dei="http://xbrl.sec.gov/dei/2021q4" 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" xmlns:country="http://xbrl.sec.gov/country/2021" xmlns:srt="http://fasb.org/srt/2021-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217"><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:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_dsgx_RightsToPurchaseCommonSharesMember_nSyv6TtEQEeeLUWWwLVVqw" name="dei:TradingSymbol" id="Hidden_RQmH5wmrWEynBfX1wC5JIw">DSGX</ix:nonNumeric></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="dsgx-20220131.xsd"></link:schemaRef></ix:references><ix:resources><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember_t4Hc0sjibkeGpxupatbaKw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</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_StatementClassOfStockAxis_dsgx_RightsToPurchaseCommonSharesMember_nSyv6TtEQEeeLUWWwLVVqw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">dsgx:RightsToPurchaseCommonSharesMember</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_vGU7trQ6JEeTntC-02SO5Q"><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:context id="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="dei:EntityAddressesAddressTypeAxis">dei:BusinessContactMember</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_WoFhHpDO0EKcQIF65DgIZg"><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_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_mfIYXhgIyEutGPk9clKJUg"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_QIs7W9xyCkuO8AzVgnZu3g"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_TausbxT04kSdrcoQckjP_A"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_0NJb6Rrf9E2XDSzf7H6-Mg"><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_AHDzDBNNwEKdzsCpyCG1xQ"><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_xtKcHXK14km9wzwjAcFOzg"><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_7CYQONsmVUWWo6uaQqO1eQ"><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_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_gP_9T311zEGHA0dmiVT16w"><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_4hAMxiTAoUetR67y6OzN9Q"><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_OOQKiMlEGE2aJSEwD48vRQ"><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_Wz9iH8wYd0O-Fu6ZdBYLBA"><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="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_oaO7TzfnxESITGUtdBa0Xg"><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>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_Z2f9Xp48hUGeQW4tvacMlg"><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>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_olNbahUDQU6XjkvjTgYGmw"><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>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_A8gi74q9xUKVG3uPnmO1Qg"><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>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xXAHuj9_7kumbyLN3SnhBQ"><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>2019-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_uILb96-R5U-JARfsjROcqQ"><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>2019-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jvhlfo0xuUS0JRb6sAjEdw"><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>2019-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_tdOf6WBla0SheUcR2Mm5NQ"><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>2019-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_KecCz_vCi0WIyzWw686IMA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range4Member</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_ayc5YaAvckuqG75CHoUJVg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range3Member</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_miym7Y2tQ0CWkuJKTYz8rg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range2Member</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_oFYYcwzT2kSngLEWBsY2Tg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range1Member</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_Pk50zSWNUUqLi05xTSwP2g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range4Member</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_XNpUYrc4XEOgkXEq-NIbpw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range3Member</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_XCTgfzC54kK5U5TRd9kmYg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range2Member</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_XxmAIop8xU2fPHBgO1IozQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range1Member</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_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_tuTAz0XA_Ei-QJeWb1ffHQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</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_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_G9RPCEo4IUG05bsTdddmIQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</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_2020_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_SPCBDNsT8km6uDuZauvpng"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</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_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_WoGVhn8RbEqNIS2XfMymGw"><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><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</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_2019_To_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_SwfVQ3NBHk6mbktgTezcWg"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_0PjYLYex6kWbjrP31EV_zQ"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_a6zlxirXhk6lj0r53h1eGQ"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_LTqMLIM6gE2LGZtryjqdiw"><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>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_xNK5CW1PfUKZ-5-p4RhSTQ"><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>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_rqml2znZlUqm4RPvFsDXeg"><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="srt:TitleOfIndividualAxis">dsgx:DirectorsAndOfficersMember</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_srt_RangeAxis_srt_MaximumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_LzBPItrnkUSyLyvpW5dpwg"><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="srt:TitleOfIndividualAxis">dsgx:DirectorsAndOfficersMember</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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20240131_K7bJRvcCaUaOJCsKzIRyQA"><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-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BSaZuJ8iV0GnzVZKjRCLhg"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_TnVIMvcpNkClOMdi4uSnGg"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_kgEa_faQEEaf9O0kgi3l8A"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_255iORS_60mUVBtHlLU-CA"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_UQUY5v6DW0iqCVCBqwRomQ"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_country_US_VbxbVoj3b06INSbM_Y5HeQ"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_country_CA_VkQUR2kSEEmJnna-3JFEaQ"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_6htMCidMNU-SCNpKrlv23Q"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_w06w9bHzm0q81XG4qJWEZw"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_K-5exWnX8E-v55CULfOfLg"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_s19lreQFN0G4CHA8kcRBPw"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_vTMkvCp1IE6fngyGxWx_1Q"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_country_US_FJqnonP8lkyEfzDqioCdqQ"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_country_CA_UjmB8NPywk6FmXwRFCgl9A"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BPP9D5WlIEq4YeDnVnZ0lw"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_us-gaap_LicenseMember_-toxsNCiIUSMlF-mLvRISA"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_us-gaap_EMEAMember_mXxsr2nHD0KxZ_H5QJd88w"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_srt_AsiaPacificMember_MV9UcAsif0a_xzDnffJPrQ"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember__m-sOO5qIUeZ_06HupfX0g"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_country_US_fFiFF8jOfkKgXgvDCb1jnw"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_country_CA_x69LzXeWOk-JuVkVxesPuw"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_zb8-b27fxEOqONHKWF7GSA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</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_2020_To_7_31_2020_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2021RestructuringPlanMember_uwsr5UeuT0mJDmP5YmRbvw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2021RestructuringPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-05-01</xbrli:startDate><xbrli:endDate>2020-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_wQ56Xji8okOHvhjyNs8GBg"><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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</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_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_qGgZ1KLOW0iJoBwYrLEc1w"><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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_EITjm6OxtkeOKUat7j70Wg"><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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_22SDPXLDbEGZubRlz13-ag"><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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</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_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember_by-ctpJoUEKaLWdA6pBRzg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</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_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_rp5iMx3Ih0K6_ViVYm6lkQ"><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="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_4cdmB8XAmUyYsnIrVL3Ing"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_R2B2bfsFSUCWd9P9iuu-Sg"><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:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</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_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_fE0y39-Y1kOHLDmNwnB4zA"><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_-NIvLjm4HEmB4367X3GH_A"><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_2_21_2020_To_2_21_2020_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_cpr7JowY-0-fTELVxWuXZg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-21</xbrli:startDate><xbrli:endDate>2020-02-21</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_8_20_2019_To_8_20_2019_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__K_CKExkQUGKL4V6QnHqHQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-08-20</xbrli:startDate><xbrli:endDate>2019-08-20</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_6_27_2019_To_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_m7ZQo6l4GEGBffNZAjZ1cA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-06-27</xbrli:startDate><xbrli:endDate>2019-06-27</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_l1xtGup8hUiSmVvpkwVeVA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:FacilityClosingMember</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_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_sDHuZnahDkGFo4n3vcYPFg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</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_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_FeZTDz1knEOIm6s3NcMHSQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:FacilityClosingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_o2zoEyp7oE2CHwT3-ufIYQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_12ucPReGf06Y2zWrjoJYHg"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_sxp2ND6Lz0-6_yRAr2_0iw"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_5n76_Ec7VUy6Fl_01TXv2A"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_CanadaRevenueAgencyMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_n3fDUqKHkkqwqyzCEm6tgw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:CanadaRevenueAgencyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</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_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2024Member_NPDrKNl4d0CiofQn3q182g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:EmeaIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2024Member</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_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_8D9ltBQutE-KNl9UnONHSQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:EmeaIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</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_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_FqALFL32L0-ZVtkRwQLTCw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2026Member</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_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2024Member_EP-c_U_ZvkyawADVsUc-Aw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2024Member</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_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2023Member_pbhmeJTzEEGvgX0QollwRw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2023Member</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_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2022Member_dH2gSqgTFkekaGwqxoz3MA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2022Member</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_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_MA7SJdYuj0eFWVuYE8qEnA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</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_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_KIBdpwnvzkWsrGEtyLogSw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2026Member</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_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_La9WG1s4XEa-tW_hDzgizA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</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_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_CanadaRevenueAgencyMember_bTrWatkgXEmVhEZwR06CHQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:CanadaRevenueAgencyMember</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_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_oqLUw-Rkj0WHJz2YuBuBwQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:EmeaIncomeTaxAuthorityMember</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_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_cfQip8AjzkiEGTBypq8DxQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</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_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_8W5hBkpkD06GZ7pYOMklEg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</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_TaxPeriodAxis_dsgx_TaxYear2026Member_-7oqMBKAW0Cw45fMmY7o7w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2026Member</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_TaxPeriodAxis_dsgx_TaxYear2024Member_qJ84ak9nB0KUDO_nxMpjtQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2024Member</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_TaxPeriodAxis_dsgx_TaxYear2023Member_47twzIQX9US1gRAIzK-aUg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2023Member</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_TaxPeriodAxis_dsgx_TaxYear2022Member_xSYF1Uobk0iMYrDd4Q5_2w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2022Member</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_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_in4-6PdoB06kzQIw1IwElg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_1_2019_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member_Uxq09-K35EWseTk8RpKELw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201602Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-02-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_nwDerRE9r0e6p4gjDGggYg"><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_gXjw1liBHESrg_jt9hHuxA"><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_FcXQBM-8kkCcoJ-ZFGX4-A"><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_zVSpNieKykqfgPNhmnCX9g"><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="As_Of_1_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_bEDa6AzDgUuoUnj9f094CA"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_4Pd12t1mQE2IfF6lO85jSw"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_srt_StatementGeographicalAxis_country_US_uENRYDC8qUu5zkQ-ErjPaQ"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_srt_StatementGeographicalAxis_country_CA_WJM5zVB3HEGEGtna5KPVRg"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_OjLJ9SGrykm8RexqufFiSQ"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_piMSALILw0-3-Lt6TVCDSg"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Z5yZxRLcU0CuWU92iGfJJA"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_7WV2WG7hY02Hue03KNCehQ"><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>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_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_8UoMpN6ffkGHrkF9TWjHWA"><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>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_CHgSwsp1YU-fuIhZ6XL__w"><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-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_ywumInG3jUiHKI12dCDfSw"><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-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_9VPfdHEG60GB6FjmgdjwIQ"><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-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_CJG2wdGE-UWUMxrjAtlXlw"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QNRGEZqKbk2H-xJ1qEeenA"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_srt_StatementScenarioAxis_dsgx_AdjustmentForRoundingMember_p_k977-wkUmegClVDfGXMQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementScenarioAxis">dsgx:AdjustmentForRoundingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ucbf_Mqi5E-GHs4jl2soJw"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_iiILgc48IEu3k37t4FnrZA"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_Zvp0J6SLfky_u_84LejsAQ"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_SwKl7wxg4U6E3uj88OkY1A"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_2AF4Kk2u9UCFYGLlmpx5eQ"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_E5rEsetdQE2euDGYsh7YKg"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_HTscRJdVmE-hEfxPxlNJTQ"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_SEpa10LrA0WzfrbaPWE0pA"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_EWfnmDasXUiG5glp47JklA"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_0znV3ErqU0W7ltG5tNNzlw"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_qEq7TAJGbUWDi902EO3iWg"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_9Y5S6N_X0EG0HQZeg2rKEQ"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WcEylzAH80Wci6W4cTylsg"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_IwiX329ID0OWzMgPqLvdHA"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_dLXciUyUp0ujzW8J9gIbPA"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_p9nNK7-Cb02XX7YZ31EYHA"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_0fxE6yk620mFkQIAhrUiMA"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_iAWnsyaLHkGX5rClQmLyGw"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_0_mws9CjSEi9zaG9wGYPrQ"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_LCFf39TyXEuWIUpt3uXoVg"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_mDe5LIEq1kizEWJo9aQLBQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ufh9C_8PX0q_er__XG15VA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_iYJrinNx8US3_JDS2i61jw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ZI94cnnyBUqO9mu597uobg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_HhPjaBaLAk--NZLKhCGl7w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_OpXQurELgE6ZWTVHR5cUXw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_82Kvl8sh4kORcU3Z9dFzFQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_QY9PRynUCEuXIJeGAzYh8Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_hgEDwWyEoEyqPhkAlio-Gw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_96aa9pGyvEmPVHgyuRze9A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IbJEW73HBEy57YRp8uftKA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_-cen7Q9c80KeAvXRKzVkoQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_IlkBq9tWJ067uQ8n3RQeDg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_toEokvOHmkGkRwW0VFGSFQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_QslD97aGzUSmxgNUgo0gmQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_8vVpAF_3PUOLOUfUD_AZSA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_vOSTvRk7qkWykSTBxtWbFg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_VI2m3FobU02SMVYSyVJ6CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_upldn00obEaI0YwkfSbKKw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_RFl-ivDUpkuM4gPqQc1uoA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_AodaZuJJhEmLGfk5vM_4Xg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_NxVrBFDtfE2aU_eySMTHTQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_MyJws-_XkEOnbAWEolXtkA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_M_zFBBQA-kCCKiZ0dMBFNw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_clruato9GEygS8dCpkf03w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_Rjjd1fsOdkG_a8K7mc9t2g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_0a47ECpsREmTvHqq58lxlg"><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_AQeERyWeAUmcM8TN2dBtng"><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_KidyCChL90K5qlmRPwH-NQ"><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_rGPZE8F7EEGVhjUZw2M6eA"><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="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_DpHhSXHT30WFldVT8ub07g"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_nhQYimyVwEawwo6fkcZKtw"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_JbBgq5JeqkeJmJpd6Erqqw"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_t1zQKq9u2EG0psuawWuKvg"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_CfGPFGAsT0yBB-18Em2TxQ"><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>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_T35Ce-ftVkCfzd2IVx2x1w"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_8o6KsHXFCUGApF_yinehww"><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-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_z-O83c1_EUOg0PNZOSrN5A"><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_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_RgbL7tZqa0-Mtc-SaBHNhw"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_h9V1252FXUaVf6IBeLfeCg"><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="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_DwROZOUKqUyASpoDf9wQhg"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_u_RInjQ7nUm_b14xd328ug"><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>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_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_LbgTJfBAc0-puJJw6dnpjQ"><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>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_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_vkNJbO3L_0iTH20RJ2bw7g"><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>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_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_2-m8W4ieSkm2EHWoicblBg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</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_IncomeTaxAuthorityAxis_country_US_Vrz8x3cMY0eGg2MgcD_XJg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</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_IncomeTaxAuthorityAxis_country_CA_dp4Lg9uba0meUHvS8vBMVA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</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_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_JVIx6YYHZ0SFgUNH4y46NQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_US_1k1e81jvskaCGwqzFZNxow"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_CA_-qoUg8uSNEmdIC9kGUAjGQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_0BoiksB-jUqzI_Pn77OHOg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_US_A-vqgqS9w0Khx2tJGBb58w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_CA_8UKHeEHvmUybpv2vplN8OA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember_z7MAqE8efEW_Ldoeku3vXw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">dsgx:VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember</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_2019_uG_65RiDbkmgzyTBRRPLRA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2019-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_NlJ5oxTQ6UWVrL3DGtx8Dw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</xbrldi:explicitMember><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_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_m2aVx6RaU0yxG_4hM-YwGg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</xbrldi:explicitMember><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_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_8HUH7Y_IdkC1mJohr3nlZQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</xbrldi:explicitMember><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="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_8Ah7qZo0N0q9fJLHWe_fAQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember__4iI8QiVVkCWTDOwVp8BPQ"><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><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_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Zg8RmQtgDUy46PpX-zr9xA"><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><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_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_9HVnyG-GgkS3TAR7yaffRQ"><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><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="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_uC3qtrAlckiNFx9y3xMYcQ"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_e_qmpySADECwk7mYyKxEiw"><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><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_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_1IENC0jwXESl2IShVnfpRg"><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><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_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_yaSyCWUyfEmXCz3tNLVbRg"><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><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="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_EN8sgTg8z0O8q8r2t3z_Fg"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_OAOOdrPxlEGBgjExzkPMpQ"><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><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_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_eqDX7VyTkUyhFUQH9sWjXg"><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><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_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_txYuo3m0uUqxVIbsRXXUdg"><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><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="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IDk6N0SKMU6pWQST9laSxQ"><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><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_Luy4xt2ioU6wUP9Q5BVL-g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_AY9M0d4raU-ckFXOR_VPaw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_L2luSBQ0CUOmWlJlGBgiVg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_KWy6P_GcCU2aIEIfwf-H6Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_1Ab9pJ7f9UOYPNdjET5WSA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_sB4ayHA7TkuJDMCz0_LAiw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_F10gJ1_3qU-xnghG6KhaUg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_TAOskhj0qUKmj6GOUiAGpA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_A1Zc-28a10KJsK2k_TNjow"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_QJZLisK4mEeWaMAJN6xUGQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_C1u53VpXhES2Twr8_VV-IQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_QwWpdt93TUeOUO1vd2ekLA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember__0iDAnSQ8kOD7SH6qjdtzw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_tWFqjq24p0qwaoSd7wglwQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_JKz_hchtG0y_TKM9VtPhiw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_lZhiZbsAHEaZ1ucIjCKFUg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_As8x__qscEqyyK1LbmzYig"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_-RiW0iv7UUCv1zdRGwiO-A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_EMjy3I83rEi_Uywh6-FkXQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9OPl-_NamU-8jPKQBsPFcQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_DRyHZVXCOkG9NuodBL4_zg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_8lJAxmSWeUWeY2KhOn6Bhw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_-z53bdCWJ0qfr2IOa7OwDg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_JKgy9A0JoE6CxbpXp4agWg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_qYfwYNOh80OpqM6Igh29dQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_oO9lFQJTbUSxS7UXzSWnPA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZQHQGJhj7USnLe7o6yF-LQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_xGBeHZqGfUecRTFn1FKezg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_UaWFtW-ymEac39ZpsOI9Mw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_tGsJoTzniEuZ2nBbpcH4mg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WUiitBuZxkaT_KhhU0_gnQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LpDbjRYSq02nc1l1CVxsWw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_GBIsGRYPq0KW3gkpF98WBw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_eTIEUugiW0yBBvixxgp-Yw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_x4G7EFWpMU67ejOu1XZTNg"><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-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_5VdpNuQirk-81zaOQK04WA"><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-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_gQibUrB05UCy_-zIIsEmzQ"><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-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_qVi9CDTjukeDzh6qfnf3_w"><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-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_iXJAkxzkfEmbWhtNsF9DaA"><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_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pN3gJRdEbUmTra2ded8SGA"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_3QFf5n1hKEaU_I-jPBavcw"><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:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-02-09</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_COREKontainersAndShipTrackMember_Na_m748yMkC_8ItOGImQWQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:COREKontainersAndShipTrackMember</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_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__FM86vXOh02yrHBKuD8f4g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Acquisitions2022Member_iwvQAXkNEUC4-KVO_3DvMQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:Acquisitions2022Member</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_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_k2f6AxEZnU-5tuFi5l7-yA"><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_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_CZlLc3PkPEGHTiG_tcT0tQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-11-06</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_K2fv58fH3kidZbNiWe-ZLA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-10</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_21_2020_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_g1PCOnoy6EW5BDn__nPeaw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-02-21</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_8_20_2019_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_cFf-BZNtEUyExQjSmseeCw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-08-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_UdmFWIytNUKEePP1VREI2Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-05-10</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA"><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_UeQxy_Xq3EWY5r4R8mN2Bg"><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="As_Of_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_LhkN6ua3y0WxshKVcjKCGQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-06-27</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_EWzTXDK11kuuajqtQLW5Xw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-02-12</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_12_2019_To_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_XwzrU8ENo0OG_AANymt7Zw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-12</xbrli:startDate><xbrli:endDate>2019-02-12</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_N5hco1tb6U67Swm5ryMSmg"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_r5pSsa_cYkCG0A19zqkGbw"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_z7zilvJfkEWdP1QukbdUoQ"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_iiKzX0DmCE6auk_0Kl21Pw"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_0qfldzUGnUa8D6oNioLzVQ"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_wEcqw4uO2keH-5OKP18XBQ"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_Nb9EtL9nKkukH1rnMIiTrw"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_cWPjPg4LDkWEaFxKq7xJYA"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_0kw2A8eK6EG7Hy2gjU7AnA"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_HykPW4NlGEivd_SePNDWQA"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_p-sYBbEvvUCRaew36CFgkA"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_fDOL7lqI6U-y6cUkIlDJ-g"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_8l1N7K4Xc02vvyAvHjaasQ"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_3bFzRfjWLkqA2oYYNELPFQ"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_3MfANjnYcECPQTJiRahhhg"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_GmlB_N6orEO4bj1gBhlFpQ"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_jsHHy_PqpkiirASYpxSruQ"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_PDYPg1dAqE2gEl9iicLP8Q"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_QcE0I4cJ5k2iVg_82e4xEg"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_J1LSEqJWtUeeWzLBwEGttA"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_ru_9FcT6ikaFMxDHrrMd5Q"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_BrRAvzRdC0KOXdi8b39Vcw"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nJijUlDHfE2mcW48hAEXwQ"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_eoj-x1FNVEeX-g8-deMtaw"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_fxhEzFyKA0WbdTUOW2bHFQ"><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_nbse0UCE-EW4cF_lZVKosA"><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_hkrMSkRGkUGy4FaD2LwjiQ"><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_KzJjuDmC6USUUUb1sEVUww"><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="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_dpzYaXowaUGHEeOzNVoncg"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_vAEh8AqvVUyUGNT5U1AA7g"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_W2_efZk4UEOnz2T_FP4d-Q"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_IrgBNrYG-U-TRqB9u8qUuQ"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_HoZcmJS5UEGoApRP_erQ2A"><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_-1BLRqHEr0uswedXBzEx3A"><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_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"><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="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"><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>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_rDrj0FK6SEGuRjxffaILTA"><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_0aLkmM4cwESLDqXJ3Fiwzg"><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="Duration_2_1_2021_To_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_LYIvNCFuHkin3VL-ZTwqZg"><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>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_4HEL19AECkW499iCsp6lQg"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_DW40VpY3vUOYNnDB7B6xUA"><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="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_rnnC8H1lFUaMzqv-faVMZw"><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>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_r1XeBldg10OTWilpIrUQ5A"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_ayZ85oCYrkqVqWmMqqiP9g"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_8PMORFsxEEKKw8OpaNUE7g"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_0oTRyn6q_ESvDqkRHqwbiw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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_srt_RangeAxis_srt_MaximumMember_4hqUhne3rUqREbUiI2ekeQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_dsgx_CashsettledRestrictedSharePlanMember_xKtZmAwUnU66uUCT2654kw"><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:AwardTypeAxis">dsgx:CashsettledRestrictedSharePlanMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_dsgx_CashsettledRestrictedSharePlanMember_FU9bE0nj0UOkmWAWR5ux4Q"><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:AwardTypeAxis">dsgx:CashsettledRestrictedSharePlanMember</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_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_6gWvZqMFu0-PySAX6jXeNw"><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>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_yN0rFVro70eOMuM0Ex5FRQ"><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>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_Vu5P28ZOKE2xlWNdAuVDzA"><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>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</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_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</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_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog"><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>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</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_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw"><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>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA"><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>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</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_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</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_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Acpz1De2gUW7H4nJYzi56A"><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_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_COREKontainersAndShipTrackMember_iGVsbJ4rcUGpAAEC07MnkQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:COREKontainersAndShipTrackMember</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_11_6_2020_To_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_Lq0x8Dst1Ua4ndrbhaCCBA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-11-06</xbrli:startDate><xbrli:endDate>2020-11-06</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_6_10_2020_To_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_9r0d5j0vHkOZ65LLgwaf8Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-06-10</xbrli:startDate><xbrli:endDate>2020-06-10</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_10_2019_To_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_JMmmRI9sbECGGlYuO1HaJg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-05-10</xbrli:startDate><xbrli:endDate>2019-05-10</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</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_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ"><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_cTcnpaQkE06Td8DyQzqjgg"><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_YuJyuSHG9Uqtu2klu3sKmw"><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_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-02-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_dsgx_DeferredShareUnitPlanMember_tqFBQc7Jn0OwDHsZ0d7dIw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:DeferredShareUnitPlanMember</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_2021_m-RKl1jsfEKKnKC8tI7EGw"><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="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2021-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw"><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_CAD_U4lm8KFyrE2-58IWVu9ONA"><xbrli:measure>iso4217:CAD</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_segment_KK23ak5saEO7Bet-BMU5GQ"><xbrli:measure>dsgx:segment</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_EUR__n7KenNwikaxusqIFuXIvQ"><xbrli:measure>iso4217:EUR</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g"><xbrli:measure>xbrli:shares</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="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;text-align:center;border-bottom:1px solid #000000;border-top:3.0pt solid #000000;margin:0pt;"><span style="font-size:1pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:3pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p><a id="_73a18772_d134_4a90_b5d4_e18de05a0638"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">UNITED STATES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">SECURITIES AND EXCHANGE COMMISSION</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">WASHINGTON, D.C. 20549</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">________________________________________</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:11pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">FORM&#xA0;</b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:DocumentType" id="Narr_TyDOnw_IbE-Jq4Zp9d5qqQ"><b style="font-weight:bold;">40-F</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 5pt 0pt;"><b style="font-weight:bold;">________________________________________</b></p><table style="border-collapse:collapse;border:0;"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:5pt;margin-top:0pt;text-align:justify;"><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:DocumentRegistrationStatement" id="Narr_yKwjS0V4L06m164LKxgFYQ"><b style="font-family:'Segoe UI Symbol';font-size:7pt;font-weight:bold;">&#x2610;</b></ix:nonNumeric></p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:5pt;margin-top:0pt;text-align:justify;"><b style="font-size:7pt;font-weight:bold;">REGISTRATION STATEMENT PURSUANT TO SECTION&#xA0;12 OF THE SECURITIES EXCHANGE ACT OF 1934</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;padding-left:36pt;text-align:center;text-indent:-36pt;margin:0pt 0pt 5pt 0pt;"><b style="font-weight:bold;">OR</b></p><table style="border-collapse:collapse;border:0;"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:5pt;margin-top:0pt;text-align:justify;"><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:DocumentAnnualReport" id="Narr_HuNxbVW5ZUWH99jDwCOtvg"><b style="font-family:'Segoe UI Symbol';font-size:7pt;font-weight:bold;">&#x2612;</b></ix:nonNumeric></p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:5pt;margin-top:0pt;text-align:justify;"><b style="font-size:7pt;font-weight:bold;">ANNUAL REPORT PURSUANT TO SECTION&#xA0;13(a)&#xA0;OR 15(d)&#xA0;OF THE SECURITIES EXCHANGE ACT OF 1934</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 5pt 0pt;"><b style="font-size:7pt;font-weight:bold;">For the fiscal&#xA0;year ended </b><ix:nonNumeric format="ixt:datemonthdayyearen" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:DocumentPeriodEndDate" id="Narr_uIFdR5BZbEui9BkfAh6cpQ"><b style="font-size:7pt;font-weight:bold;">January&#xA0;31, 2022</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:7pt;font-weight:bold;">Commission File Number: </b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityFileNumber" id="Narr_hp8qtmD9Y0iCIBO6Tk0wMQ"><b style="font-size:7pt;font-weight:bold;">000-29970</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 3pt 0pt;"><b style="font-weight:bold;">________________________________________</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:11pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">THE </b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityRegistrantName" id="Narr_SiqUo9Ci4k-IEmq-tSC_sA"><b style="font-weight:bold;">DESCARTES SYSTEMS GROUP&#xA0;INC</b></ix:nonNumeric><b style="font-weight:bold;">.</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;">(Exact name of Registrant as specified in its charter)</p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 3pt 0pt;"><b style="font-weight:bold;">________________________________________</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">N/A</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><span style="white-space:pre-wrap;"> (Translation of Registrant&#x2019;s name into English (if applicable))</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric format="ixt-sec:edgarprovcountryen" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityIncorporationStateCountryCode" id="Narr_Twr7tyuFVkirlJITZlnW4A"><b style="font-size:7pt;font-weight:bold;">Canada</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><span style="white-space:pre-wrap;"> (Province or other jurisdiction of incorporation or organization)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">N/A</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><span style="white-space:pre-wrap;"> (Primary Standard Industrial Classification Code Number (if applicable))</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">N/A</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><span style="white-space:pre-wrap;"> (I.R.S. Employer Identification Number (if applicable))</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityAddressAddressLine1" id="Narr_jLBtiYMUPk2wOcvRuHAf1g"><b style="font-size:7pt;font-weight:bold;">120 Randall Drive</b></ix:nonNumeric><b style="font-size:7pt;font-weight:bold;">, </b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityAddressCityOrTown" id="Narr__ShraPpkP0WcmUO_JFwpWQ"><b style="font-size:7pt;font-weight:bold;">Waterloo</b></ix:nonNumeric><b style="font-size:7pt;font-weight:bold;">, </b><ix:nonNumeric format="ixt-sec:stateprovnameen" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityAddressStateOrProvince" id="Narr_C_xUKSED402W_FQ8OxTmEg"><b style="font-size:7pt;font-weight:bold;">Ontario</b></ix:nonNumeric><b style="font-size:7pt;font-weight:bold;">, </b><ix:nonNumeric format="ixt-sec:countrynameen" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityAddressCountry" id="Narr_vBHJ_sJpokS6QUw4ykR9fA"><b style="font-size:7pt;font-weight:bold;">Canada</b></ix:nonNumeric><b style="font-size:7pt;font-weight:bold;"> </b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityAddressPostalZipCode" id="Narr_pRRX936fC0mfmz0f0a-dSQ"><b style="font-size:7pt;font-weight:bold;">N2V 1C6</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:7pt;font-weight:bold;">Tel: (</b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:CityAreaCode" id="Narr_n1PbZDOZe0Cu3f47hIDl6g"><b style="font-size:7pt;font-weight:bold;">519</b></ix:nonNumeric><b style="font-size:7pt;font-weight:bold;">) </b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:LocalPhoneNumber" id="Narr_pFtSuAzfakC0U2fyBpsJtQ"><b style="font-size:7pt;font-weight:bold;">746-8110</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><span style="white-space:pre-wrap;"> (Address and telephone number of Registrant&#x2019;s principal executive offices)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA" name="dei:ContactPersonnelName" id="Narr_OS6QUSjiiE25hM4ZFV5JvA"><b style="font-size:7pt;font-weight:bold;">Descartes Systems (USA) LLC</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA" name="dei:EntityAddressAddressLine1" id="Narr_U3a3u5XgGUOmrjGRrRXxuw"><b style="font-size:7pt;font-weight:bold;">Powers Ferry Business Park</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA" name="dei:EntityAddressAddressLine2" id="Narr_QBcXNvQ4yEik7LCYmr6-8Q"><b style="font-size:7pt;font-weight:bold;">2030 Powers Ferry Road SE</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA" name="dei:EntityAddressAddressLine3" id="Narr_gak_UQbrj0mDlWQiekr-Gg"><b style="font-size:7pt;font-weight:bold;">Suite&#xA0;350</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA" name="dei:EntityAddressCityOrTown" id="Narr_3iECPWRIpUuCtVj-4T6Phw"><b style="font-size:7pt;font-weight:bold;">Atlanta</b></ix:nonNumeric><b style="font-size:7pt;font-weight:bold;">, </b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA" name="dei:EntityAddressStateOrProvince" id="Narr_PFfGBwXYV06z99rDAO7gMQ"><b style="font-size:7pt;font-weight:bold;">GA</b></ix:nonNumeric><b style="font-size:7pt;font-weight:bold;"> </b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA" name="dei:EntityAddressPostalZipCode" id="Narr_G9wPSQaaLkuhB56a2lgHww"><b style="font-size:7pt;font-weight:bold;">30339-5066</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><b style="font-size:7pt;font-weight:bold;">Tel: (</b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA" name="dei:CityAreaCode" id="Narr_QNo4GLDBW06RVjNSF348Sg"><b style="font-size:7pt;font-weight:bold;">678</b></ix:nonNumeric><b style="font-size:7pt;font-weight:bold;">) </b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA" name="dei:LocalPhoneNumber" id="Narr_R4WzZWFWY06AqpLRMfDUfA"><b style="font-size:7pt;font-weight:bold;">247-0400</b></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;">(Name, address (including zip code) and telephone number</p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><span style="white-space:pre-wrap;"> (including area code) of agent for service in the United States)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 6pt 0pt;">Securities registered or to be registered pursuant to Section&#xA0;12(b)&#xA0;of the Act.</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:top;width:40.4%;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:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td><td style="vertical-align:top;width:15.15%;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:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td><td style="vertical-align:bottom;width:40.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%;"></div></div></td></tr><tr><td style="vertical-align:top;width:40.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Title of each class:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:top;width:15.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Trading Symbol(s):</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;border-bottom:1px solid transparent;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;width:40.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Name of each exchange on which</b><b style="font-weight:bold;"><br /></b><b style="font-weight:bold;">registered:</b></p></td></tr><tr><td style="vertical-align:bottom;width:40.4%;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;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember_t4Hc0sjibkeGpxupatbaKw" name="dei:Security12bTitle" id="Narr_PutIaGZihUW95UtL1kZVwQ"><b style="font-size:7pt;font-weight:bold;">Common Shares, no par value</b></ix:nonNumeric><b style="font-size:7pt;font-weight:bold;"><br /></b><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_dsgx_RightsToPurchaseCommonSharesMember_nSyv6TtEQEeeLUWWwLVVqw" name="dei:Security12bTitle" id="Narr_B7jX1eRlnESQBPLbpQWbpA"><b style="font-size:7pt;font-weight:bold;">Rights to purchase Common Shares, no par value</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:15.15%;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;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember_t4Hc0sjibkeGpxupatbaKw" name="dei:TradingSymbol" id="Narr_765jJO3fPkyKAwxUaFKLdw"><b style="font-size:7pt;font-weight:bold;">DSGX</b></ix:nonNumeric><b style="font-size:7pt;font-weight:bold;"><br /></b><span style="-sec-ix-hidden:Hidden_RQmH5wmrWEynBfX1wC5JIw;"><b style="font-family:'Times New Roman','Times','serif';font-size:7pt;font-style:normal;font-weight:bold;">N/A</b></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:40.39%;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;"><ix:nonNumeric format="ixt-sec:exchnameen" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember_t4Hc0sjibkeGpxupatbaKw" name="dei:SecurityExchangeName" id="Narr_4njoWDdw80yVC8DM4212-A"><b style="font-size:7pt;font-weight:bold;">Nasdaq</b></ix:nonNumeric><b style="font-size:7pt;font-weight:bold;"><br /></b><ix:nonNumeric format="ixt-sec:exchnameen" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_dsgx_RightsToPurchaseCommonSharesMember_nSyv6TtEQEeeLUWWwLVVqw" name="dei:SecurityExchangeName" id="Narr_JO3UNsTnF0GRdEJdcAiw9A"><b style="font-size:7pt;font-weight:bold;">Nasdaq</b></ix:nonNumeric></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:7pt;text-align:center;margin:0pt 0pt 3pt 0pt;">Securities registered or to be registered pursuant to Section&#xA0;12(g)&#xA0;of the Act.</p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">None</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 3pt 0pt;"><span style="white-space:pre-wrap;"> (Title of Class)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 3pt 0pt;">Securities for which there is a reporting obligation pursuant to Section&#xA0;15(d)&#xA0;of the Act.</p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">N/A</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 3pt 0pt;"><span style="white-space:pre-wrap;"> (Title of Class</span><b style="font-weight:bold;">)</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 3pt 0pt;">For annual reports, indicate by check mark the information filed with this Form:</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;text-align:center;margin:0pt 0pt 3pt 0pt;"><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:AnnualInformationForm" id="Narr_tap3GU5Pu0W32VpdqQIROw"><span style="font-family:'Segoe UI Symbol';font-size:7pt;">&#x2612;</span></ix:nonNumeric><span style="font-size:7pt;"> Annual information form</span><span style="display:inline-block;width:52.96pt;"></span><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:AuditedAnnualFinancialStatements" id="Narr_AUqdgj4vb0Gh3lkXMl_HOg"><span style="font-family:'Segoe UI Symbol';font-size:7pt;">&#x2612;</span></ix:nonNumeric><span style="font-size:7pt;"> Audited annual financial statements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 3pt 0pt;">Indicate the number of outstanding shares of each of the issuer&#x2019;s classes of capital or common stock as of the close of the period covered by the annual report.</p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt 0pt 3pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" format="ixt:numdotdecimal" scale="0" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="0" name="dei:EntityCommonStockSharesOutstanding" id="Narr_OpnKSoahkEeR3m8m85m6zA">84,756,210</ix:nonFraction> common shares as of January&#xA0;31, 2022</p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 3pt 0pt;">Indicate by check mark whether the Registrant (1)&#xA0;has filed all reports required to be filed by Section&#xA0;13 or 15(d)&#xA0;of the Exchange Act during the preceding 12&#xA0;months (or for such shorter period that the Registrant was required to file such reports) and (2)&#xA0;has been subject to such filing requirements for the past 90&#xA0;days.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 3pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityCurrentReportingStatus" id="Narr_41LmXy5dbUGw7ajd8xYhAg"><span style="font-size:7pt;">Yes</span></ix:nonNumeric><span style="font-size:7pt;">&#xA0;&#xA0;</span><span style="font-family:'Segoe UI Symbol';font-size:7pt;">&#x2612;</span><span style="font-size:7pt;">&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;No&#xA0;&#xA0;</span><span style="font-family:'Segoe UI Symbol';font-size:7pt;">&#x2610;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 3pt 0pt;">Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule&#xA0;405 of Regulation S-T (&#xA7; 232.405 of this chapter) during the preceding 12&#xA0;months (or for such shorter period that the Registrant was required to submit such files).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 3pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityInteractiveDataCurrent" id="Narr_QUGHDxsMm0KTtvyWMYPu4w"><span style="font-size:7pt;">Yes</span></ix:nonNumeric><span style="font-size:7pt;">&#xA0;&#xA0;</span><span style="font-family:'Segoe UI Symbol';font-size:7pt;">&#x2612;</span><span style="font-size:7pt;">&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;No&#xA0;&#xA0;</span><span style="font-family:'Segoe UI Symbol';font-size:7pt;">&#x2610;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 3pt 0pt;">Indicate by check mark whether the registrant is an emerging growth company as defined in Rule&#xA0;12b-2 of the Exchange Act.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 3pt 0pt;"><span style="font-size:7pt;">Emerging growth company&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;</span><ix:nonNumeric format="ixt-sec:boolballotbox" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityEmergingGrowthCompany" id="Narr_P4EY4oIBeUCPbgac2x2QqA"><span style="font-family:'Segoe UI Symbol';font-size:7pt;">&#x2610;</span></ix:nonNumeric></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 3pt 0pt;">If an emerging growth company that prepares its financial statements in accordance with U.S. GAAP, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section&#xA0;13(a)&#xA0;of the Exchange Act.&#xA0;&#xA0;<span style="font-family:'Segoe UI Symbol';">&#x2610;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt 0pt 3pt 0pt;">Indicate by check mark whether the registrant has filed a report on and attestation to its managements&#x2019; assessment of the effectiveness of its internal control over financial reporting under Section&#xA0;404(b)&#xA0;of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report. <span style="font-family:'Segoe UI Symbol';">&#x2612;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;border-bottom:3.0pt solid #000000;border-top:1px solid #000000;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt;"><span style="font-size:0pt;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="clear:both;max-width:100%;position:relative;"><a id="_4fcc91df_1029_4327_b8d1_6ee2150ac65d"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">CERTIFICATIONS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">See Exhibits <a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d5.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">99.5</span></a>, <a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d6.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">99.6</span></a> and <a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d7.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">99.7</span></a> to this Annual Report on Form&#xA0;40-F.</p><a id="_ff4d8b40_cee4_4a3c_90c5_3ff7cb15c0bf"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">CONTROLS AND PROCEDURES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">DISCLOSURE CONTROLS AND PROCEDURES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">The Registrant, under the supervision and with the participation of the Registrant&#x2019;s management, including the Registrant&#x2019;s Chief Executive Officer (principal executive officer) and Chief Financial Officer (principal financial officer), evaluated the effectiveness of the Registrant&#x2019;s disclosure controls and procedures as of January&#xA0;31, 2022 (the &#x201C;<span style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Evaluation Date</span>&#x201D;), pursuant to Rule&#xA0;13a-15(b)&#xA0;promulgated under the Securities Exchange Act of 1934, as amended (the &#x201C;<span style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Exchange Act</span>&#x201D;). Based upon that evaluation, the Registrant&#x2019;s Chief Executive Officer and Chief Financial Officer concluded that, as of the Evaluation Date, the Registrant&#x2019;s disclosure controls and procedures were effective.</p><a id="_2ffe1fec_40c3_48eb_b7df_24148ba8e7a1"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">INTERNAL CONTROL OVER FINANCIAL REPORTING</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Management&#x2019;s Report on Financial Statements and Internal Control Over Financial Reporting</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">Management&#x2019;s Report on Financial Statements and Internal Control Over Financial Reporting is contained in the Registrant&#x2019;s Audited Consolidated Financial Statements for the Registrant&#x2019;s fiscal&#xA0;year ended January&#xA0;31, 2022, filed herewith as Exhibit&#xA0;<a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d2.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">99.2</span></a> and incorporated herein by reference.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Report of Independent Registered Public Accounting Firm</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">The report of KPMG LLP with respect to the effectiveness of the Registrant&#x2019;s internal control over financial reporting is contained in the Registrant&#x2019;s Audited Consolidated Financial Statements for the Registrant&#x2019;s fiscal&#xA0;year ended January&#xA0;31, 2022, filed herewith as Exhibit&#xA0;<a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d2.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">99.2</span></a> and incorporated herein by reference.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Changes in Internal Control Over Financial Reporting</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">During the period covered by this Annual Report on Form&#xA0;40-F, there have been no changes in the Registrant&#x2019;s internal control over financial reporting that have materially affected, or are reasonably likely to materially affect, the Registrant&#x2019;s internal control over financial reporting.</p><a id="_3e3268eb_199c_4576_9ae1_0ceaf855d67a"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">NOTICES PURSUANT TO RULE&#xA0;104 OF REGULATION BTR</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">None.</p><a id="_8c809103_10e2_4e5e_be0f_e99ea64e8b6b"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">AUDIT COMMITTEE FINANCIAL EXPERT</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;"> The Registrant&#x2019;s Audit Committee of the Board of Directors currently consists of three members. The Registrant&#x2019;s Board of Directors has determined that all members, being John J. Walker, Deepak Chopra and Eric Demirian, are &#x201C;audit committee financial experts&#x201D; (as defined in paragraph 8(b)&#xA0;of General Instruction B to Form&#xA0;40-F). All members of the Audit Committee are independent within the meaning of the Nasdaq Stock Market&#x2019;s (&#x201C;</span><span style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Nasdaq</span>&#x201D;) director independence standards.</p><a id="_337031e8_c594_42b6_8a42_50366580bb81"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">CODE OF ETHICS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">The Registrant has adopted a Code of Business Conduct and Ethics (the &#x201C;<span style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Code of Ethics</span>&#x201D;) that applies to the Registrant&#x2019;s principal executive officer, principal financial officer, principal accounting officer or controller, or persons performing similar functions. A copy of the Code of Ethics is posted on the Registrant&#x2019;s corporate website at <i style="font-style:italic;">www.descartes.com</i> and is also available at <i style="font-style:italic;">www.sedar.com</i>. The Registrant intends to disclose through its website any waivers or amendments to its Code of Ethics that apply to any principal executive officer, principal financial officer, principal accounting officer or controller, or persons performing similar functions.</p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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="clear:both;max-width:100%;position:relative;"><a id="_bb8f2988_f543_41e0_bea3_45acac544b57"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM FEES AND SERVICES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">The aggregate fees billed in respect of the fiscal&#xA0;years ended January&#xA0;31, 2021 and January&#xA0;31, 2022 for professional services rendered by <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:AuditorName" id="Narr_A_I3ekyLwkC_pYHYBTBMMA">KPMG LLP</ix:nonNumeric>, <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:AuditorLocation" id="Narr_5aaAPs4i2UGeKfglS7hPIA">Toronto, ON, Canada</ix:nonNumeric>, Auditor Firm ID:<ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:AuditorFirmId" id="Narr_JCigwNZTWUCiltGXBB3OLg">85</ix:nonNumeric>, the Registrant&#x2019;s Independent Registered Public Accounting Firm, are as follows (all amounts in table are in US dollars&#xA0;&#x2014; amounts that were billed in Canadian dollars are converted to US dollars at the applicable exchange rate on the last day of the applicable fiscal period):</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:68.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p 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.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p 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:1.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p 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.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 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.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:1.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p 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.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 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:68.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.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-weight:bold;">Fiscal&#xA0;Year&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.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-weight:bold;">Fiscal&#xA0;Year&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.41%;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-weight:bold;">January&#xA0;31,&#xA0;2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.41%;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-weight:bold;">January&#xA0;31,&#xA0;2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Audit Fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="white-space:pre-wrap;"> 651,748</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="white-space:pre-wrap;"> 681,657</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Audit-Related Fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="white-space:pre-wrap;"> 2,430</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="white-space:pre-wrap;"> 2,430</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Tax Fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Nil</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Nil</p></td></tr><tr><td style="vertical-align:bottom;width:68.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">All Other Fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Nil</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Nil</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;margin:0pt 0pt 12pt 0pt;">AUDIT FEES&#x2014; Audit fees consist of fees and related disbursements for professional services rendered for the audit of the Registrant&#x2019;s annual consolidated financial statements, reviews of the Registrant&#x2019;s interim consolidated financial statements, services provided in connection with regulatory filings and statutory audits of certain of the Registrant&#x2019;s foreign subsidiaries.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">AUDIT RELATED FEES&#x2014; Audit related fees consist of fees for assurance and related services that are reasonably related to the performance of the audit or review of the Registrant&#x2019;s financial statements and are not reported as Audit Fees.</p><a id="_5c152e17_ac0d_4ed0_8fcf_eb612e0d227c"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">PRE-APPROVAL POLICIES AND PROCEDURES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">The Registrant&#x2019;s audit committee is responsible for overseeing the work of the independent registered public accounting firm and has adopted a policy requiring its pre-approval of all audit and permissible non-audit services provided by the independent registered public accounting firm. The Registrant&#x2019;s Pre-Approval Policy and Procedure for Engagements of the Independent Auditor is filed as <span style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Appendix B</span> to the Registrant&#x2019;s Annual Information Form&#xA0;dated April&#xA0;14, 2022 filed as Exhibit&#xA0;<a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">99.1</span></a> hereto and incorporated by reference herein.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">All non-audit fees were approved by the Registrant&#x2019;s audit committee, and none were approved on the basis of the de minimis exception set forth in Rule&#xA0;2-01(c)(7)(i)(C)&#xA0;of Regulation S-X.</p><a id="_d77d01fc_c572_4af1_b3d6_28684189e9f0"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">OFF-BALANCE SHEET ARRANGEMENTS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">The Registrant does not have any off-balance sheet arrangements that have or are reasonably likely to have a current or future effect on the Registrant&#x2019;s financial condition, changes in financial condition, revenues or expenses, results of operations, liquidity, capital expenditures or capital resources that are material to investors.</p><a id="_42752068_f85c_4e38_bae0_14d5f257ce79"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">DISCLOSURE OF CONTRACTUAL OBLIGATIONS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">The required disclosure is included under the heading &#x201C;Commitments, Contingencies and Guarantees&#x201D; in the Registrant&#x2019;s Management&#x2019;s Discussion and Analysis for the fiscal&#xA0;year ended January&#xA0;31, 2022, filed as Exhibit&#xA0;<a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d3.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">99.3</span></a> to this Annual Report on Form&#xA0;40-F.</p><a id="_650697b6_399b_4cc4_9daa_e0d38fed0a08"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">IDENTIFICATION OF THE AUDIT COMMITTEE</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">The Registrant has a separately designated standing audit committee established in accordance with Section&#xA0;3(a)(58)(A)&#xA0;of the Exchange Act. The members of the audit committee as of the date of the filing of this 40-F are: Mr.&#xA0;John J. Walker (Chair), Mr.&#xA0;Deepak Chopra and Mr.&#xA0;Eric Demirian.</p><a id="_cbb00ef4_f8a7_484e_a999_caaf0cd8e0f5"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">MINE SAFETY DISCLOSURE</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">Not applicable.</p><a id="_dba08132_20df_4f00_be0c_2607cf0301ed"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">DISCLOSURE PURSUANT TO THE REQUIREMENTS OF NASDAQ</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">The Registrant was granted an exemption from Nasdaq Stock Market Rules&#xA0;requiring each issuer to provide for a quorum at any meeting of the holders of common stock of no less than 33 1/3% of the outstanding shares of the issuer&#x2019;s common voting stock. This exemption was granted because Nasdaq&#x2019;s requirements regarding the quorum required for meetings of the holders of common stock are contrary to generally accepted business practices in Canada. In particular, Section&#xA0;139(1)&#xA0;of the Canada Business Corporations Act provides that a company&#x2019;s by-laws may set the quorum requirements for a meeting of shareholders. The relevant provisions of the Registrant&#x2019;s by-laws state that &#x201C;Subject to the Act in respect of a majority shareholder, a quorum for the transaction of business at any meeting of shareholders shall be persons not being less than two in number and holding or representing by proxy not less than </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="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">20&#xA0;percent of the issued and outstanding shares of the Corporation for the time being enjoying voting rights at such meeting. If a quorum is present at the opening of any meeting of shareholders, the shareholders present or represented may proceed with the business of the meeting notwithstanding that a quorum is not present throughout the meeting. If a quorum is not present at the opening of any meeting of shareholders, the shareholders present or represented may adjourn the meeting to a fixed time and place but may not transact any other business.&#x201D;</p><a id="_017feb60_00eb_4c24_9640_d27a2766a86d"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">DISCLOSURE REGARDING FOREIGN JURISDICTIONS THAT PREVENT INSPECTIONS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">Not applicable.</p><a id="_49004886_1b76_464b_b9be_55385ce3311a"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">UNDERTAKING</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">Registrant undertakes to make available, in person or by telephone, representatives to respond to inquiries made by the Commission staff, and to furnish promptly, when requested to do so by the Commission staff, information relating to: the securities in relation to which the obligation to file an annual report on Form&#xA0;40-F arises; or transactions in said securities.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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="clear:both;max-width:100%;position:relative;"><a id="_1cf5ef16_985d_45f6_8428_c6ab71c90d8a"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">SIGNATURES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">Pursuant to the requirements of the Exchange Act, the Registrant certifies that it meets all of the requirements for filing on Form&#xA0;40-F and has duly caused this annual report to be signed on its behalf by the undersigned, thereto duly authorized.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</p><div style="margin-left:0pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:7.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;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:top;width:39.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;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:top;width:53.1%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;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:top;width:7.05%;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:39.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">/s/ Michael Verhoeve</p></td><td style="vertical-align:top;width:53.1%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:top;width:7.05%;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:39.84%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Michael Verhoeve</p></td><td style="vertical-align:top;width:53.1%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><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:7.05%;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:39.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">EVP Legal, General Counsel and Corporate<br />Secretary</p></td><td style="vertical-align:top;width:53.1%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><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:7.05%;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:39.84%;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:53.1%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><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:7.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Date:</p></td><td style="vertical-align:top;width:39.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">April&#xA0;14, 2022</p></td><td style="vertical-align:top;width:53.1%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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="clear:both;max-width:100%;position:relative;"><a id="_d4594af3_3662_4526_b75b_b5365362c2bb"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;">EXHIBIT&#xA0;INDEX</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:15.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;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:top;width:2.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;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;width:82.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></tr><tr><td style="vertical-align:top;width:15.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 3.6pt;"><b style="font-weight:bold;">Exhibit&#xA0;Number</b></p></td><td style="vertical-align:top;width:2.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:82.15%;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-weight:bold;">Description</b></p></td></tr><tr><td style="vertical-align:top;width:15.37%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 3.6pt;">99.1</p></td><td style="vertical-align:top;width:2.46%;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:82.15%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 3.6pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Annual Information Form&#xA0;for the fiscal&#xA0;year ended January&#xA0;31, 2022</span></a></p></td></tr><tr><td style="vertical-align:top;width:15.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 3.6pt;">99.2</p></td><td style="vertical-align:top;width:2.46%;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:82.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 3.6pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d2.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Audited Annual Financial Statements for the fiscal&#xA0;year ended January&#xA0;31, 2022</span></a></p></td></tr><tr><td style="vertical-align:top;width:15.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 3.6pt;">99.3</p></td><td style="vertical-align:top;width:2.46%;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:82.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 3.6pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d3.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Management&#x2019;s Discussion and Analysis for the fiscal&#xA0;year ended January&#xA0;31, 2022</span></a></p></td></tr><tr><td style="vertical-align:top;width:15.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 3.6pt;">99.4</p></td><td style="vertical-align:top;width:2.46%;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:82.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 3.6pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d4.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Consent of KPMG LLP</span></a></p></td></tr><tr><td style="vertical-align:top;width:15.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 3.6pt;">99.5</p></td><td style="vertical-align:top;width:2.46%;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:82.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 3.6pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d5.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Certification of the Chief Executive Officer pursuant to Rule&#xA0;13a-14 or 15d-14 of the Securities Exchange Act of 1934, as adopted pursuant to Section&#xA0;302 of the Sarbanes-Oxley Act of 2002</span></a></p></td></tr><tr><td style="vertical-align:top;width:15.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 3.6pt;">99.6</p></td><td style="vertical-align:top;width:2.46%;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:82.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 3.6pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d6.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Certification of the Chief Financial Officer pursuant to Rule&#xA0;13a-14 or 15d-14 of the Securities Exchange Act of 1934, as adopted pursuant to Section&#xA0;302 of the Sarbanes-Oxley Act of 2002</span></a></p></td></tr><tr><td style="vertical-align:top;width:15.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 3.6pt;">99.7</p></td><td style="vertical-align:top;width:2.46%;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:82.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 3.6pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220131xex99d7.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Certifications of the Chief Executive Officer and Chief Financial Officer pursuant to 18 U.S.C. Section&#xA0;1350, as adopted pursuant to Section&#xA0;906 of the Sarbanes-Oxley Act of 2002</span></a></p></td></tr><tr><td style="vertical-align:top;width:15.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 3.6pt;">101</p></td><td style="vertical-align:top;width:2.46%;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:82.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 3.6pt;">Interactive Data File (formatted in Inline XBRL)</p></td></tr><tr><td style="vertical-align:top;width:15.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 3.6pt;">104</p></td><td style="vertical-align:top;width:2.46%;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:82.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 3.6pt;">Cover Page&#xA0;Interactive Data File (formatted as Inline XBRL and contained in Exhibit&#xA0;101)</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;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin: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="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-weight:bold;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.1
<SEQUENCE>2
<FILENAME>dsgx-20220131xex99d1.htm
<DESCRIPTION>EXHIBIT-99.1
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.14.0.96--><!--Created on: 4/14/2022 05:57:26 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;min-height:87.49pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Exhibit 99.1</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p><div style="height:0pt;position:relative;width:100%;"><div style="height:87.49pt;position:absolute;right:0pt;top:183pt;width:607.5pt;z-index:-9223372036603117568;"><div style="height:87.49pt;left:0pt;padding-bottom:0pt;position:relative;top:0pt;width:607.5pt;"><img src="dsgx-20220131xex99d1001.jpg" alt="Graphic" style="height:87.49pt;width:607.5pt;"></div></div></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 150pt 0pt;"><font style="float:left;font-size:11pt;height:92.49pt;width:0pt;"><img src="dsgx-20220131xex99d1002.jpg" alt="DescartesLOGO_Black.jpg" style="display:inline-block;height:64.5pt;left:0.28%;padding-bottom:0pt;position:relative;top:0pt;width:319.5pt;"></font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="color:#ffffff;font-size:16pt;font-weight:bold;">THE DESCARTES SYSTEMS GROUP INC.</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 300pt 0pt;"><b style="color:#ffffff;font-size:11pt;font-weight:bold;">ANNUAL INFORMATION FORM</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">APRIL 14TH, 2022</b></p><p style="display:none;line-height:0pt;margin:0pt;"><font style="font-family:'Arial','Helvetica','sans-serif';font-size:0pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:12pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;padding-bottom:1pt;padding-top:1pt;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;"><b style="font-weight:bold;">TABLE OF CONTENTS</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p><div align="left"><table style="border-collapse:collapse;font-size:16pt;height:max-content;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">ITEM 1</b></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">GENERAL</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">3</b></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">ITEM 2</b></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">CORPORATE STRUCTURE</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">4</b></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">2.1</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">The Company</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">4</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">2.2 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Intercorporate Relationships</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">4</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 7.2pt;"><font style="font-size:9pt;margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">ITEM 3</b></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">GENERAL DEVELOPMENT OF THE BUSINESS</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">5</b></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">3.1</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Profile</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">5</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">3.2 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">History and General Development</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">7</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">3.3</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Trends / Business Outlook</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">10</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 7.2pt;"><font style="font-size:9pt;margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">ITEM 4</b></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">NARRATIVE DESCRIPTION OF THE BUSINESS</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">13</b></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.1 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Company Overview</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">13</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.2</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Principal Products &amp; Services</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">13</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.3 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Revenue Sources</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">25</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.4 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Customer Base</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">25</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.5</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Sales and Marketing</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">26</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.6</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Research and Development</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">27</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.7 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Competition</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">28</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.8 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Intellectual Property and Other Proprietary Rights</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">28</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.9</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Contracts</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">29</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.10 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Employees</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">30</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.11 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Risks Associated with Foreign Sales and Exchange Rate Fluctuations</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">30</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.12 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Risks Associated with Cyclical or Seasonal Aspects of Business</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">31</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.13</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Reorganizations</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">31</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.14 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Material Contracts</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">31</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">4.15</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Code of Business Conduct and Ethics</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">31</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 7.2pt;"><font style="font-size:9pt;margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">ITEM 5 </b></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">RISK FACTORS</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">32</b></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">ITEM 6 </b></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">MARKET FOR SECURITIES AND RELATED SECURITYHOLDER MATTERS</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">33</b></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">6.1</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Common Shares</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">33</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">6.2</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Transfer Agent and Registrar</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">33</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">6.3</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Dividend Policy</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">34</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">6.4</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Market for Common Shares</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">34</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">6.5</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Shareholder Rights Plan</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">34</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 7.2pt;"><font style="font-size:9pt;margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">ITEM 7 </b></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">DIRECTORS AND EXECUTIVE OFFICERS</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">35</b></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">7.1 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Summary Information</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">35</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">7.2 </p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Committees of the Board of Directors</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">39</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt 0pt 0pt 7.2pt;">7.3</p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">Certain Relationships and Related Transactions</p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;">41</p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 7.2pt;"><font style="font-size:9pt;margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">ITEM 8</b></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">EXTERNAL AUDITORS</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">41</b></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">ITEM 9</b></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">LEGAL PROCEEDINGS</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">41</b></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">ITEM 10</b></p></td><td style="vertical-align:top;width:81.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">ADDITIONAL INFORMATION</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">42</b></p></td></tr><tr><td colspan="3" style="vertical-align:top;width:100%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td></tr><tr><td colspan="2" style="vertical-align:top;width:89.17%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Appendix A </b><b style="font-family:'Verdana';font-weight:bold;">&#8211;</b><b style="font-weight:bold;"> Audit Committee Charter</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">43</b></p></td></tr><tr><td colspan="3" style="vertical-align:top;width:100%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td></tr><tr><td colspan="2" style="vertical-align:top;width:89.17%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Appendix B </b><b style="font-family:'Verdana';font-weight:bold;">&#8211;</b><b style="font-weight:bold;"> Audit Committee Pre-Approval Policy</b></p></td><td style="vertical-align:top;width:10.82%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">56</b></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;"><b style="font-weight:bold;">ITEM 1</b><font style="display:inline-block;width:111.77pt;"></font><b style="font-weight:bold;">GENERAL</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-weight:bold;">Information contained herein is provided as at January 31, 2022 and is in United States (</b><b style="font-family:'Verdana';font-weight:bold;">&#8220;</b><b style="font-weight:bold;">US</b><b style="font-family:'Verdana';font-weight:bold;">&#8221;</b><b style="font-weight:bold;">) dollars, unless otherwise indicated.</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Our Annual Information Form (<font style="font-family:'Verdana';">&#8220;</font>AIF<font style="font-family:'Verdana';">&#8221;</font>) contains references to The Descartes Systems Group Inc. using the words <font style="font-family:'Verdana';">&#8220;</font>Descartes,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>we,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>us,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>our<font style="font-family:'Verdana';">&#8221;</font> and similar words and the reader is referred to using the words <font style="font-family:'Verdana';">&#8220;</font>you,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>your<font style="font-family:'Verdana';">&#8221;</font> and similar words.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">This AIF also refers to our fiscal years. Our fiscal year commences on February 1<sup style="font-size:7.5pt;vertical-align:top;">st</sup> of each year and ends on January 31<sup style="font-size:7.5pt;vertical-align:top;">st</sup> of the following year. Our fiscal year that ended on January 31, 2022 is referred to as <font style="font-family:'Verdana';">&#8220;</font>fiscal 2022,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>2022<font style="font-family:'Verdana';">&#8221;</font> or using similar words. Our fiscal year that ended on January 31, 2021 is referred to as <font style="font-family:'Verdana';">&#8220;</font>fiscal 2021,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>2021<font style="font-family:'Verdana';">&#8221;</font> or using similar words. Other fiscal periods are referenced by the applicable year during which the fiscal period ends. For example, 2023 refers to the annual period ending January 31, 2023 and the <font style="font-family:'Verdana';">&#8220;</font>fourth quarter of 2022<font style="font-family:'Verdana';">&#8221;</font> refers to the quarter ended January 31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">You should read the AIF in conjunction with our audited consolidated financial statements for 2022 and the management<font style="font-family:'Verdana';">&#8217;</font>s discussion and analysis thereon (<font style="font-family:'Verdana';">&#8220;</font>MD&amp;A<font style="font-family:'Verdana';">&#8221;</font>). We prepare and file our consolidated financial statements and MD&amp;A in US dollars and in accordance with US generally accepted accounting principles (<font style="font-family:'Verdana';">&#8220;</font>GAAP<font style="font-family:'Verdana';">&#8221;</font>).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We have prepared the AIF with reference to Form 51-102F2, which sets out the AIF disclosure requirements and which was established under National Instrument 51-102 <font style="font-family:'Verdana';">&#8220;</font>Continuous Disclosure Obligations<font style="font-family:'Verdana';">&#8221;</font> (<font style="font-family:'Verdana';">&#8220;</font>NI 51-102<font style="font-family:'Verdana';">&#8221;</font>) of the Canadian Securities Administrators.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Additional information about us, including copies of our continuous disclosure materials such as our MD&amp;A, 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Certain statements made in this AIF, as well as the MD&amp;A referenced herein, constitute forward-looking information for the purposes of applicable securities laws (<font style="font-family:'Verdana';">&#8220;</font>forward looking statements<font style="font-family:'Verdana';">&#8221;</font>), including, but not limited to: statements in the <font style="font-family:'Verdana';">&#8220;</font>Trends / Business Outlook<font style="font-family:'Verdana';">&#8221;</font> 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 current war in Ukraine and the ongoing global pandemic in respect of the Covid-19 virus (the <font style="font-family:'Verdana';">&#8220;</font>Pandemic<font style="font-family:'Verdana';">&#8221;</font>) 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; our liability with respect to various claims and suits arising in the ordinary course; any commitments referred to in the <font style="font-family:'Verdana';">&#8220;</font>Commitments, Contingencies and Guarantees<font style="font-family:'Verdana';">&#8221;</font> section of our 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; 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 <font style="font-family:'Verdana';">&#8220;</font>believe,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>plan,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>expect,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>anticipate,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>intend,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>continue,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>may,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>will,<font style="font-family:'Verdana';">&#8221;</font> <font style="font-family:'Verdana';">&#8220;</font>should<font style="font-family:'Verdana';">&#8221;</font> 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: our ability to avoid the impact of network failures,</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">information security breaches or other cyber-security threats, or any significant disruptions in the movement of freight or a decline in shipment volumes including as a result of the current war in Ukraine 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; our 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; 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; 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.<font style="font-family:'Verdana';">&#160;</font> Such factors include, but are not limited to, the factors discussed under the heading <b style="font-family:'Verdana';font-weight:bold;">&#8220;</b><b style="font-weight:bold;">Certain Factors That May Affect Future Results</b><b style="font-family:'Verdana';font-weight:bold;">&#8221;</b> in the MD&amp;A which is included in our Annual Report to the Shareholders for the fiscal year ended January 31<sup style="font-size:7.5pt;vertical-align:top;">st</sup>, 2022, 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<font style="font-family:'Verdana';">&#8217;</font>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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;"><b style="font-weight:bold;">ITEM 2</b><font style="display:inline-block;width:111.77pt;"></font><b style="font-weight:bold;">CORPORATE STRUCTURE</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">2.1 </b></font><b style="font-weight:bold;">The Company</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Descartes was continued under the <i style="font-style:italic;">Canada Business Corporations Act</i> on July 5, 2006. On July 31, 2006, Descartes was amalgamated under the <i style="font-style:italic;">Canada Business Corporations Act </i>pursuant to an amalgamation between Descartes and ViaSafe Inc. On February 1, 2010, Descartes was amalgamated under the <i style="font-style:italic;">Canada Business Corporations Act</i> pursuant to an amalgamation between Descartes and Scancode Systems Inc. (<font style="font-family:'Verdana';">&#8220;</font>Scancode<font style="font-family:'Verdana';">&#8221;</font>). On February 1, 2010, Descartes was amalgamated under the <i style="font-style:italic;">Canada Business Corporations Act</i> pursuant to an amalgamation between Descartes and 7322267 Canada Inc. On February 1, 2012, Descartes was amalgamated under the <i style="font-style:italic;">Canada Business Corporations Act</i> pursuant to an amalgamation between Descartes and 882976 Ontario Inc. &#160;On March 31, 2021, Descartes was amalgamated under the <i style="font-style:italic;">Canada Business Corporations Act</i> pursuant to an amalgamation between Descartes and PinPoint GPS Solutions Inc..</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The Descartes Systems Group Inc. head office and registered office is located at 120 Randall Drive, Waterloo, Ontario, N2V 1C6 and our general corporate phone number is (519) 746-8110.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">2.2 </b></font><b style="font-weight:bold;">Intercorporate Relationships</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We beneficially own, control and/or direct 100% of all voting, share or membership interests in our material subsidiaries. Our material subsidiaries, determined as at January 31, 2022, are as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Descartes Visual Compliance Inc., a Canadian subsidiary;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">12268761 Canada Inc., a Canadian subsidiary;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Descartes U.S. Holdings, Inc., a Delaware subsidiary;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Descartes Systems (USA) LLC, a Delaware subsidiary;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">MacroPoint, LLC, an Ohio subsidiary;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Descartes Visual Compliance (USA) LLC, a Delaware subsidiary;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">VitaDex Solutions LLC, a Delaware subsidiary</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Descartes Systems UK Limited, a United Kingdom subsidiary;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Descartes Systems (Sweden) AB, a Swedish subsidiary; 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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Descartes Systems (Belgium) NV, a Belgian subsidiary.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-align:justify;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="font-size:9.5pt;margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;"><b style="font-weight:bold;">ITEM 3</b><font style="display:inline-block;width:111.77pt;"></font><b style="font-weight:bold;">GENERAL DEVELOPMENT OF THE BUSINESS</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">3.1</b></font><b style="font-weight:bold;">Profile</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We bring together networks, applications, global trade content, and collaborative multi-modal logistics communities in ways that improve the productivity, performance and security of logistics and supply chain operations. Customers use our modular, cloud-based and data content 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; comply with trade regulations, and complete numerous other logistics processes. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. We also occasionally act as a reseller of hardware devices from third party suppliers which are used by our customers in connection with their transportation and logistics operations and which provide data that may be relevant to our cloud-based solutions. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders, freight brokers, and customs brokers) and manufacturers, retailers, distributors, and business service providers. For these organizations, 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">The Market</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Logistics is the management of the flow of resources between a point of origin and a point of destination <font style="font-family:'Verdana';">&#8211;</font> 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 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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<font style="font-family:'Verdana';">&#8217;</font> global supply chains and a lack of standardized business processes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Additionally, global sourcing, logistics outsourcing, imposition of additional customs and regulatory requirements and changes 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">scheduling and rescheduling deliveries. End-customers also want real-time updates on delivery status, adding considerable burden to supply chain management as process efficiency is balanced with affordable service.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">As the market continues to change, we have been evolving to meet our customers<font style="font-family:'Verdana';">&#8217;</font> 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 (<font style="font-family:'Verdana';">&#8220;</font>GLN<font style="font-family:'Verdana';">&#8221;</font>) 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 <font style="font-family:'Verdana';">&#8211;</font> 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Increasingly, data and content have become central to supply chain planning and execution. The review of people, goods, services and/or commodities against comprehensive lists of restricted or sanctioned parties published by governments and international organizations has become an essential compliance requirement as the penalties for doing business with sanctioned parties can be far-reaching and severe. Our content and compliance solutions help simplify and automate the screening processes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Complex international supply chains are also affected by logistics service provider performance, capacity, and productivity, as well as regulatory frameworks such as free trade agreements, and trade and trade sanctions. We believe our global trade data, denied party screening, trade regulations and free-trade agreement and duty rate and calculation solutions help customers improve their sourcing, compliance, landed-cost, and transportation lane and provider selection processes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Solutions</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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<font style="font-family:'Verdana';">&#8217;</font>s multimodal logistics community to enable companies to quickly and cost-effectively connect and collaborate.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 <font style="font-family:'Verdana';">&#8220;</font>low tech<font style="font-family:'Verdana';">&#8221;</font> partners to act and respond with <font style="font-family:'Verdana';">&#8220;</font>high tech<font style="font-family:'Verdana';">&#8221;</font> 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Descartes offers a wide array of modular, cloud-based, interoperable web and wireless supply chain and logistics management applications. These solutions embody Descartes<font style="font-family:'Verdana';">&#8217;</font> deep domain expertise, not merely <font style="font-family:'Verdana';">&#8220;</font>check box<font style="font-family:'Verdana';">&#8221;</font> 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<font style="font-family:'Verdana';">&#8217;</font> comprehensive suite of solutions includes:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Routing, Mobile and Telematics;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Transportation Management;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Ecommerce Shipping and Fulfillment;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Customs &amp; Regulatory Compliance;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Global Trade Intelligence;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Global Logistics Network Services; 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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Broker &amp; Forwarder Enterprise Systems.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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<font style="font-family:'Verdana';">&#8217;</font> solutions are designed to deliver functionality that can enhance a logistics operation<font style="font-family:'Verdana';">&#8217;</font>s performance and productivity both within the organization and across a complex network of partners.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> expanding global trade intelligence offering unites systems and people with trade information to enable organizations to work smarter by making more informed supply chain and logistics decisions. Our content 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> 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<font style="font-family:'Verdana';">&#8217;</font> 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">3.2 </b></font><b style="font-weight:bold;">History and General Development</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Our origins were in providing logistics-focused software designed to optimally plan and manage routes for direct delivery and retail customers with private fleets. Supply chain management has evolved as companies across industry verticals have increasingly sought real-time control over their supply chain. We have established a network-based business model and are consolidating technology to provide our</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">customers with a shared-services environment that assists our customers in gathering and exchanging source data for logistics. We have also designed value-added services that enable shippers, transportation companies and logistics intermediaries to use that information to make better business decisions and deliver better service to their own customers.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Key developments in our business over the last three fiscal years, described beginning with the most recent, are as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Fiscal 2022 and Part of Fiscal 2023 through to April 14th, 2022</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">In February 2022, Russian military forces commenced an invasion into Ukraine which has escalated to a war between Russia and Ukraine. &#160;As of the date of this AIF, this war has resulted in large disruptions to normal business activity in Eastern Europe as countries focus on the impacts from the war and widespread economic uncertainty across the world, including significant increases in oil and energy prices and resulting costs of operating transportation assets such as trucks, airplanes and ocean freighters. &#160; The overall impact of these events to our customers and to the transportation and logistics industry which we serve remains highly uncertain at the current time. &#160;In addition, following the invasion of Ukraine, the European Union and nations around the world including, Canada, the United States, the United Kingdom, Japan, Australia, Switzerland, and New Zealand imposed what they describe as <font style="font-family:'Verdana';">&#8220;</font>strong<font style="font-family:'Verdana';">&#8221;</font> and <font style="font-family:'Verdana';">&#8220;</font>severe<font style="font-family:'Verdana';">&#8221;</font> sanctions on Russia and various Russian entities and individuals. The new restrictions which focus on additional individuals from Russia and Belarus being added to watchlists, expanded export controls (especially on high-tech and sensitive technology products) and measures to further isolate the Russian financial system, add to international sanctions in place since 2014.<font style="font-family:'Verdana';">&#160;</font> &#160;Our business includes several solutions that assist companies in complying with these types of sanctions and restrictions.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On February 9, 2022, we acquired all of the shares of NetCHB, LLC (<font style="font-family:'Verdana';">&#8220;</font>NetCHB<font style="font-family:'Verdana';">&#8221;</font>), 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 consideration of up to $60.0 million based on NetCHB achieving revenue-based targets over the first two years post-acquisition.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On December 16, 2021, we concluded the terms of an amending agreement (the <font style="font-family:'Verdana';">&#8220;</font>Amending Agreement<font style="font-family:'Verdana';">&#8221;</font>) to the amended and expanded credit facility agreement of the Company (the <font style="font-family:'Verdana';">&#8220;</font>Credit Agreement<font style="font-family:'Verdana';">&#8221;</font>) dated as of January 25, 2019 among <i style="font-style:italic;">inter alia</i> Descartes and the lenders thereunder (the <font style="font-family:'Verdana';">&#8220;</font>Lenders<font style="font-family:'Verdana';">&#8221;</font>). The Credit Agreement, as amended by the Amending Agreement (the <font style="font-family:'Verdana';">&#8220;</font>Amended Credit Agreement<font style="font-family:'Verdana';">&#8221;</font>) establishes a US$350 million revolving operating credit facility (the <font style="font-family:'Verdana';">&#8220;</font>Credit Facility<font style="font-family:'Verdana';">&#8221;</font>) that is 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 further expanded to a total of US $500 million. The Credit Facility has a five-year maturity with no fixed repayment dates prior to the end of the five-year term ending in January 2024. Borrowings under the Credit Facility are secured by a first charge over substantially all of Descartes<font style="font-family:'Verdana';">&#8217;</font> assets. &#160; The amendments concluded in December of 2021 were largely of an administrative nature.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On July 8, 2021, we acquired all of the shares of GreenMile, LLC (<font style="font-family:'Verdana';">&#8220;</font>GreenMile<font style="font-family:'Verdana';">&#8221;</font>), a provider of cloud-based mobile route execution solutions for food, beverage, and broader distribution verticals. The purchase price for the acquisition was approximately $29.2 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based consideration of up to $10.0 million based on GreenMile achieving revenue-based targets over the first two years post-acquisition.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On May 7, 2021, we acquired all of the shares of Portrix Logistics Software GmbH (<font style="font-family:'Verdana';">&#8220;</font>Portrix<font style="font-family:'Verdana';">&#8221;</font>), a provider of multimodal rate management solutions for logistics services providers. The purchase price for the acquisition was approximately $25.2 million (EUR 20.7 million), net of cash acquired, which was funded from cash on hand.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On February 26, 2021, we acquired Vitadex Solutions LLC dba QuestaWeb (<font style="font-family:'Verdana';">&#8220;</font>QuestaWeb<font style="font-family:'Verdana';">&#8221;</font>) a leading provider of foreign trade zone (<font style="font-family:'Verdana';">&#8220;</font>FTZ<font style="font-family:'Verdana';">&#8221;</font>) and customs compliance solutions based in New Jersey, USA. &#160; QuestaWeb<font style="font-family:'Verdana';">&#8217;</font>s solutions allow logistics service providers and importers to automate processes related to US Customs and Border Protection (<font style="font-family:'Verdana';">&#8220;</font>CBP<font style="font-family:'Verdana';">&#8221;</font>) regulatory requirements for operating an FTZ in the United States and to otherwise comply with other customs filing requirements. &#160;The total purchase price for the acquisition was approximately $36 million satisfied from cash on-hand.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Fiscal 2021</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On November 6, 2020, we acquired ShipTrack Inc. (<font style="font-family:'Verdana';">&#8220;</font>ShipTrack<font style="font-family:'Verdana';">&#8221;</font>) a leading provider of ecommerce final mile solutions based in Ottawa, Canada. &#160;ShipTrack<font style="font-family:'Verdana';">&#8217;</font>s solutions help customers automate dispatch, update shipment status and estimated time of arrival and eliminate paper-based delivery processes. The ShipTrack solutions are particularly well-suited for the ecommerce home delivery, parcel delivery and medical courier markets, providing a platform to manage the processes related to final-mile deliveries. &#160;The total up-front purchase price for the acquisition was approximately US$19 million, which was funded from cash on-hand, plus potential performance-based consideration of up to an additional US$19 million over the next two fiscal years.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On July 8, 2020, we filed a final short-form base shelf prospectus, 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 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 could be sold by us (or certain of our current or future shareholders) pursuant to this base shelf prospectus during the 25-month period that the base shelf prospectus, including any amendments thereto, remains valid is limited to $1 billion.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On June 10, 2020, we acquired Cracking Logistics Limited dba Kontainers (<font style="font-family:'Verdana';">&#8220;</font>Kontainers<font style="font-family:'Verdana';">&#8221;</font>) a leading provider of client-facing digital freight execution platforms based in the United Kingdom. Kontainers<font style="font-family:'Verdana';">&#8217;</font> solutions enable a fully digitized solution for carriers, freight-forwarders and third-party logistics providers when quoting and booking freight. The total up-front purchase price for the acquisition was approximately $5.2 million, net of cash acquired, which was funded from cash on-hand, plus potential performance-based consideration of up to an additional $6 million over the next two fiscal years.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On May 28, 2020, we announced the election of two new directors to our Board of Directors at our annual meeting of shareholders held that day. Deepak Chopra, former President and CEO of Canada Post Corporation and Chris Muntwyler, a former executive of Swiss Air and DHL Express, were welcomed to our Board of Directors. &#160; David Beatson retired from our Board of Directors at that time.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">In May 2020 we announced that we were undertaking a restructuring of our overall global operations to reduce costs and strengthen our financial position in light of uncertainty at that time arising from the emergence of the Pandemic. The restructuring included the reduction of our global workforce by approximately 5% and the closure of several office facilities. &#160;We incurred $2.3 million in restructuring charges in fiscal 2021 related to the restructuring and the restructuring plan was substantially completed within fiscal 2021.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">In March of 2020 the global Pandemic was declared by the World Health Organization. Businesses in many countries around the globe were required to close, or materially alter, their day-to-day operations for various periods of time following this development due to government-ordered or recommended shut-downs and/or <font style="font-family:'Verdana';">&#8220;</font>shelter-in-place<font style="font-family:'Verdana';">&#8221;</font>, or equivalent, restrictions on individuals and businesses which impacted the manner in which many businesses operated. During the period of March and April 2020 we implemented measures that allowed our employees to work remotely from home locations and for us to continue to operate our business and service our customers during the Pandemic. &#160;In the first few months following the declaration of the Pandemic we observed some declines in the shipment volumes across our network through various modes of transportation and became aware of some customers who reduced or</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">temporarily suspended operations and were otherwise experiencing financial hardship in their business that may have temporarily or permanently impacted their demand for our products and services. &#160; Through the balance of Fiscal 2021, we observed that most of the shipment volumes on our network returned to levels close to historical volumes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On February 21, 2020, we acquired Peoplevox Limited (<font style="font-family:'Verdana';">&#8220;</font>Peoplevox<font style="font-family:'Verdana';">&#8221;</font>) a leading provider of cloud-based ecommerce warehouse management solutions (<font style="font-family:'Verdana';">&#8220;</font>eWMS<font style="font-family:'Verdana';">&#8221;</font>) based in London, England. Peoplevox<font style="font-family:'Verdana';">&#8217;</font>s web-based eWMS and ecommerce fulfillment solutions help customers around the world connect to webshop front ends, translate order information into a mobile-device driven pick and pack process within a warehouse and then feed parcel delivery systems for shipment execution. The total purchase price for the acquisition was approximately $24.1 million, net of cash acquired, satisfied from a combination of cash on-hand and Descartes<font style="font-family:'Verdana';">&#8217;</font> existing acquisition line of credit.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Fiscal 2020</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On August 20, 2019, we acquired BestTransport.com Inc. (<font style="font-family:'Verdana';">&#8220;</font>BestTransport<font style="font-family:'Verdana';">&#8221;</font>), an Ohio-based operator of a cloud-based transportation management system focused on flatbed-intensive manufacturers and distributors. By adding the BestTransport solution to the Descartes GLN, Descartes is better able to offer its additional solutions to the community of customers serviced by BestTransport, including Descartes<font style="font-family:'Verdana';">&#8217;</font> visibility solutions and capacity matching solutions. The total purchase price for the acquisition was approximately $11.2 million, net of working capital acquired, which was funded from Descartes<font style="font-family:'Verdana';">&#8217;</font> existing acquisition line of credit.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On June 27, 2019, we acquired a group of companies comprising the business of STEPcom (<font style="font-family:'Verdana';">&#8220;</font>STEPcom<font style="font-family:'Verdana';">&#8221;</font>), a leading European business-to-business (<font style="font-family:'Verdana';">&#8220;</font>B2B<font style="font-family:'Verdana';">&#8221;</font>) supply chain integration network provider based in Switzerland. STEPcom services a community of more than 600 customers who use the STEPcom B2B platform to automate supply chain processes. The total purchase price for the acquisition was approximately $19.6 million which was funded from Descartes<font style="font-family:'Verdana';">&#8217;</font> existing acquisition line of credit.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On June 10, 2019, we completed a public offering of common shares in the United States and Canada at a price of $35.50 per common share pursuant to the short-form base shelf prospectus (described below under the <font style="font-family:'Verdana';">&#8220;</font>Fiscal 2019<font style="font-family:'Verdana';">&#8221;</font> heading) and related prospectus supplement filed in connection with the offering. The total offering of 6,900,000 common shares included the exercise in full by the underwriters of the 15% over-allotment option, for aggregate gross proceeds to Descartes of approximately $245 million.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On May 10, 2019, we acquired Core Transport Technologies NZ Limited (<font style="font-family:'Verdana';">&#8220;</font>Core<font style="font-family:'Verdana';">&#8221;</font>), a New Zealand-based operator of an electronic transportation network that provides global air carriers and ground handlers with shipment scanning and tracking solutions. The Core acquisition adds to the breadth of solutions that Descartes can offer to its global air carrier customers and is complementary to Descartes<font style="font-family:'Verdana';">&#8217;</font> previous acquisition of the assets of Velocity Mail, LLC. The total up-front purchase price for the acquisition was approximately $21 million, which was funded from Descartes existing acquisition line of credit, plus potential performance-based consideration of up to an additional $9 million over the next two fiscal years.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On February 12, 2019, we acquired the businesses run by the Management Systems Resources Inc. group of companies operating under the names <font style="font-family:'Verdana';">&#8220;</font>Visual Compliance<font style="font-family:'Verdana';">&#8221;</font>, <font style="font-family:'Verdana';">&#8220;</font>eCustoms<font style="font-family:'Verdana';">&#8221;</font> and <font style="font-family:'Verdana';">&#8220;</font>MSR<font style="font-family:'Verdana';">&#8221;</font> (collectively, <font style="font-family:'Verdana';">&#8220;</font>Visual Compliance<font style="font-family:'Verdana';">&#8221;</font>) pursuant to a Purchase and Sale Agreement entered into on January 27, 2019 with MSR Customs &amp; Commodity Tax Group, Management Systems Resources Inc, MSR International Inc. and MSR Customs Corporation. The Visual Compliance transaction involved a total purchase price of approximately $250 million, which was satisfied in part by way of approximately $9 million in common shares of Descartes and the balance of approximately $240 million paid in cash, primarily drawn from the Credit Facility. The Company filed a Material Change Report in respect of the transaction on www.sedar.com on February 7, 2019 and a Business Acquisition Report on April 29, 2019.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">3.3</b></font><b style="font-weight:bold;">Trends / Business Outlook</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">10</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Please see our discussion elsewhere in this document related to the current war in Ukraine and the Pandemic and the potential impact of both to short-term and longer-term prospects of our business and industry.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Industry consolidation, rapid technological change and frequent new product introductions and enhancements continue to characterize the software, content and network services industries <font style="font-family:'Verdana';">&#8211;</font> particularly for logistics management technology companies. Organizations are increasingly requiring greater levels of functionality, more sophisticated product offerings and access to industry-specific data from their software and services providers.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 result, we believe there is a trend away from using manual and paper-based supply chain and logistics processes and on-premises solution deployments towards electronic processes powered by the exchange of cloud-based electronic information between logistics and supply chain participants.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 and collaborative supply chain execution applications. These applications include freight bookings, contract and rate management, content solutions for trade research and classification of goods for tariff and duty purposes, sanctioned party screening, customs filings and electronic shipment manifest processes, transportation management, real time shipment visibility, routing and scheduling, purchase order to dock door processes, ecommerce fulfilment, warehouse management and inventory visibility. Further, customers are increasingly seeking <font style="font-family:'Verdana';">&#8220;</font>big data<font style="font-family:'Verdana';">&#8221;</font> content and insight solutions for analyzing global logistics trends and activity.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We believe that there continues to be a growing acceptance of subscription pricing and cloud-based 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On January 1, 2021, the United Kingdom completed its exit from the European Union and agreed to terms on a trade agreement that set out the tariffs and non-tariff barriers on imports and exports between the two regions. Despite the trade agreement, both parties agreed that, in the absence of a customs union and single market, import and export filings would now need to be made on shipments between the United Kingdom and the European Union.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">During 2021 the United Kingdom operated staged controls including the possibility to defer import declarations. They also introduced new electronic reporting systems for automotive transport (RoRo) movements and continue to move to a new digital platform for imports and exports. At the end of 2021 the deferred declaration process and voluntary compliance ceased and mandatory compliance with controls at the point of import were imposed, with security filings from the European Union expected to be enforced from 1<sup style="font-size:7.5pt;vertical-align:top;">st</sup> July 2022. &#160;As a result, we have been actively engaging with customers and service providers about assisting them with these electronic filing requirements and we anticipate that this may continue to have a positive impact on our revenues in fiscal 2023 if the filing volumes increase.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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;">TRENDS IN GLOBAL TRADE</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The impact of the current war in Ukraine and of the seemingly waning Pandemic on global trade is uncertain. Record demand for consumer goods continues to be a driving force for significantly increased trade and shipping volumes. However, it is not clear at this time if geopolitical concerns combined with current capacity constraints and escalating transportation costs, further exacerbated by ongoing resource shortages, port congestion, and inflationary pressure, will affect this growth.</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">11</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">A clear, continuing trend is the expansion in the counter terrorism role of customs authorities around the world through much more automated and advanced fiscal compliance and cargo security measures. Facilitated by adoption of the SAFE Framework of Standards to Secure and Facilitate Global Trade championed by the World Customs Organization (<font style="font-family:'Verdana';">&#8220;</font>WCO<font style="font-family:'Verdana';">&#8221;</font>), the United States, Canada, the European Union, the United Kingdom, Japan, Sweden, Norway, Denmark, Mexico and many other countries have modernized, and continue to advance, their customs systems and procedures. As a result, importers, exporters and their trading partners must comply with new and evolving customs clearance procedures and stricter cargo security regulations. These programs are generally characterized by phased, multi-year deployments and mandates for electronic submission and management of customs declarations, security compliance filings and related trade/transportation data.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> customs and regulatory compliance solutions connect importers, exporters, logistics providers and regulatory authorities to enable efficient data transmission, cargo security screening, customs declaration filings and compliance across multiple regulatory requirements and industry-sponsored initiatives affecting international transportation. As such, our business may be impacted as regulations affecting domestic and international trade are introduced, modified or repealed.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Following the February 2022 invasion of Ukraine, the European Union and nations around the world including, Canada, the United States, the United Kingdom, Japan, Australia, Switzerland, and New Zealand imposed what they describe as <font style="font-family:'Verdana';">&#8220;</font>strong<font style="font-family:'Verdana';">&#8221;</font> and <font style="font-family:'Verdana';">&#8220;</font>severe<font style="font-family:'Verdana';">&#8221;</font> sanctions on Russia and various Russian entities and individuals. The new restrictions which focus on additional individuals from Russia and Belarus being added to watchlists, expanded export controls (especially on high-tech and sensitive technology products) and measures to further isolate the Russian financial system, add to international sanctions in place since 2014.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">While the full effect of these new/evolving sanctions on historical patterns of sourcing, manufacturing, buying and selling is not known, the importance of effective screening against denied and restricted parties before conducting business in compliance with the rules of various governments and international organizations around the word is on the rise. Transacting with people, organizations and countries with whom it is illegal or restricted can result in significant fines, loss of export/import privileges, negative media coverage and serious reputational damage.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">As sanction policies are now the subject of mass media coverage while also being in a state of constant flux, many businesses are seeking access to affordable, flexible and configurable denied party screening (DPS) solutions to remain in compliance while limiting operational disruption.<font style="font-family:'Verdana';">&#160;&#160;</font>Descartes<font style="font-family:'Verdana';">&#8217;</font> denied and restricted parties screening solutions and services can help address these needs.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Another key trend, intensified by the Pandemic, is the growing importance of better managing supply chain sourcing and risk, tracking product flows, monitoring competitors, and discovering new market opportunities using global trade data content and intelligence tools. Trade departments within international shippers and/or their brokers are being required to manage import/export compliance for a growing number of countries, covering everything from import (harmonized tariff) classifications, export classifications, other government agency information and special trade programs and valuation methodologies going into the destination countries. As such, importers, exporters, and their logistics providers are using global trade intelligence solutions to minimize duty spend, explore international sourcing options, and conduct market research to better compete.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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;">TRENDS IN MOBILE RESOURCE MANAGEMENT</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The mobile resource management (<font style="font-family:'Verdana';">&#8220;</font>MRM<font style="font-family:'Verdana';">&#8221;</font>) market is also impacted by changing regulatory trends and limited driver availability. Several countries, including the United States, have adopted legislation that requires automated telematics device-based reporting on various information related to the operation of vehicle fleets, including monitoring drivers<font style="font-family:'Verdana';">&#8217;</font> hours of service, distance travelled, speed and equipment inspections. We believe that these types of initiatives will continue to evolve and that customers in this field are increasingly looking for technology service providers to help them manage these complex compliance requirements. With aging driver workforces in North America and Europe, companies are</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">12</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">looking for solutions that can improve their existing workforce productivity while complying with the increasing number of regulatory mandates.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The Pandemic has further accelerated the MRM market trend towards adoption of solutions that specialize in enabling home delivery, delivery reservations and delivery route optimization that leverages GPS and other real-time available information about a delivery resource in motion. With firms such as Amazon and Home Depot making home delivery a differentiating feature of the buying experience, more retailers and distributors are focusing on re-engineering their logistics processes to provide customers with cost-effective delivery alternatives, including home/job site delivery and value-added services, with tight delivery time windows. In addition, we believe there is an increased proliferation of real-time information that is available about delivery resources in motion and that customers are seeking delivery resource management solutions that can leverage this information for their customers<font style="font-family:'Verdana';">&#8217;</font> benefit.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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;">GENERAL TRENDS</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 ongoing developments in and changes to legal and regulatory requirements related to both international and domestic trade, 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, natural disasters or global health-pandemic events that impact shipping or key trade lanes in particular geographies and amendments to international trade agreements. &#160; 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. Declines in shipment volumes in the US or internationally likely would have a material adverse effect on our business.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;"><b style="font-weight:bold;">ITEM 4</b><font style="display:inline-block;width:111.77pt;"></font><b style="font-weight:bold;">NARRATIVE DESCRIPTION OF THE BUSINESS</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">4.1 </b></font><b style="font-weight:bold;">Company Overview</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We are a global provider of cloud, device, and data content-based solutions focused on improving the productivity, performance and security of logistics-intensive businesses. Customers use our modular, cloud-based and data content 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 a large, collaborative multi-modal logistics community.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Our pricing models provide our customers with flexibility in purchasing our solutions either on subscription, transactional or perpetual license basis. Our solutions help transportation providers (air, ocean, rail and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and logistics-intensive manufacturers, retailers, distributors and mobile service providers reduce costs, improve operational performance, save time, comply with regulatory requirements and enhance the service that they deliver to their own customers.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">4.2</b></font><b style="font-weight:bold;">Principal Products &amp; Services</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We believe that our customers prefer a technology provider that understands the unique requirements of logistics organizations and can provide a comprehensive set of solutions. Our customers are looking for collaborative solutions that help connect their enterprise to the multiple trading partners, logistics services providers and carriers that work with them. The Logistics Technology Platform helps our customers address those needs and provide a base for continuous innovation.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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;">Logistics Technology Platform</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> Logistics Technology Platform digitally combines the world<font style="font-family:'Verdana';">&#8217;</font>s most expansive logistics network with the industry<font style="font-family:'Verdana';">&#8217;</font>s broadest array of logistics management applications and most comprehensive offering</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">13</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">of global trade related intelligence. It helps get inventory, information, assets and people where they<font style="font-family:'Verdana';">&#8217;</font>re needed, when they<font style="font-family:'Verdana';">&#8217;</font>re needed.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><img src="dsgx-20220131xex99d1003.jpg" alt="Graphic" style="display:inline-block;height:171.75pt;width:328.57pt;"></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-weight:bold;">Network</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The Descartes Global Logistics Network<font style="font-family:'Verdana';">&#8482;</font> manages the real-time flow of commercial, logistics, customs and product information. It spans more than 160 countries and connects hundreds of thousands of organizations in logistics and transportation, manufacturing, distribution, retail, government, ecommerce and business services.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-weight:bold;">Intelligence</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> global trade intelligence solutions offer comprehensive access to market leading data and tools to research, analyze and act on import/export movements, trade regulations and market trends; reduce the risk of transacting with denied or sanctioned parties; increase trade compliance rates; optimize sourcing, procurement, and business development strategies; and minimize duty spend.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-weight:bold;">Innovation</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We are focused on transforming new ideas and feedback from our customers and in-house domain experts into real-world innovations. New developments in the areas of the internet-of-things, machine learning, AI and analytics are enhancing the ability of our solutions to solve problems and process more information in new and complex ways.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-weight:bold;">Applications</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">With the GLN as the connectivity foundation, we have been expanding our logistics application functional footprint to offer a broad array of modular, interoperable web-based and wireless logistics management solutions.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We provide applications that help companies better manage their logistics book-to-bill process and purchase order-to-dock process, track inventory, meet regulatory requirements, optimize fleet performance, manage deliveries, and effectively communicate and collaborate with their logistics partners. These applications can be principally categorized as: (i) Routing, Mobile &amp; Telematics; (ii) Transportation Management; (iii) Ecommerce Shipping and Fulfillment (iv) Customs &amp; Regulatory Compliance; iv) GLN Services; (vi) Broker &amp; Forwarder Enterprise Systems, and (vii) Global Trade Intelligence Solutions.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">(i)</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Routing, Mobile &amp; Telematics</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 18pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> Routing, Mobile &amp; Telematics suite supports the closed-loop process associated with planning, tracking, measuring, delegating and optimizing the use of assets and people that are involved in the movement of goods. These solutions can improve productivity and reduce fuel, vehicle and labor costs. The suite helps address business challenges including the following: (1) strategic planning; (2) daily planning; (3) pickup/delivery reservations; (4) dispatch and vertical specific mobile</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">14</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 18pt;">solutions; (5) commercial fleet navigation; (6) reporting and measuring; (7) sales and merchandiser management; and (8) telematics and compliance.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><b style="font-weight:bold;">(1) </b><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;&#160;&#160;</b><b style="font-weight:bold;"> </b><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Strategic Planning:</b><b style="font-family:'Verdana';font-weight:bold;">&#160;</b><b style="font-weight:bold;"> </b><font style="font-style:italic;font-weight:bold;">Descartes Sales &amp; Territory Planner</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;"> </font><b style="font-weight:bold;">and</b><font style="font-style:italic;font-weight:bold;"> Descartes Area Planner</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">For strategic planning of recurring pickups or deliveries, Descartes Sales &amp; Territory Planner performs complex service scheduling that simultaneously considers daily, weekly and multi-week deliveries, as well as holidays and other non-working days. It also evaluates geographic distribution and sales potential for each customer to help establish optimal territories and routes. Factors considered include minimizing travel time and related costs, and balancing opportunities across members of the sales team. Additional parameters such as stops, distance and sales volume can also be used to help determine routes and route schedules for sales, delivery or both.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">For strategic planning of highly variable pickups and deliveries, Descartes Area Planner utilizes historical demand with algorithms to create models of demand density patterns. &#160;Those patterns are used to create territory and route plans. &#160;Descartes Area Planner takes into account service levels and delivery product types and is able to test the territory and route plan<font style="font-family:'Verdana';">&#8217;</font>s resilience to change. Descartes Area Planner typically is used to generate multiple plans to fit daily, seasonal or business cycle driven demand variability.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:38.15pt;text-align:justify;text-indent:-38.15pt;margin:0pt 0pt 0pt 54pt;"><b style="font-weight:bold;">(2)</b><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;</b><b style="font-weight:bold;"> </b><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Daily Planning:</b><b style="font-family:'Verdana';font-weight:bold;">&#160;</b><b style="font-weight:bold;"> </b><font style="font-style:italic;font-weight:bold;">Descartes Route Planner</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;">, Descartes Route Planner RS</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;">, Descartes Route Planner On-demand</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;"> </font><b style="font-weight:bold;">and </b><font style="font-style:italic;font-weight:bold;">Winroute</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes provides a number of daily planning solutions to address the range of customer requirements from the most complex to simple needs. Descartes Route Planner<sup style="font-size:7.5pt;vertical-align:top;">TM</sup> takes in new orders as they are placed, optimizes them in real-time, allocating resources to help maximize operating efficiencies, deliver priority service to the most profitable accounts and routes, and maintain overall customer service objectives. Our other daily planning solutions optimize orders in groups, balancing service with costs and operational constraints. Our daily planning solutions are designed to integrate with existing order management or transportation planning systems and can help companies reduce costs as a result of shorter routes, reduce fuel consumption and enhance fleet utilization. Descartes<font style="font-family:'Verdana';">&#8217;</font> comprehensive offering addresses a broad range of operational environments that can vary across different industries.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:38.15pt;text-align:justify;text-indent:-38.15pt;margin:0pt 0pt 0pt 54pt;"><b style="font-weight:bold;">(3)</b><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;</b><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Pickup/Delivery Reservations:</b><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#160;</font><font style="font-style:italic;font-weight:bold;"> Descartes Reservations</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Reservations facilitates on-line scheduling of deliveries or service <font style="font-family:'Verdana';">&#8212;</font> either for self-service or as a decision support tool for customer service agents. It helps companies to effectively tailor service to the demands of key customers while helping to achieve internal profitability goals. Descartes Reservations also confirms that requests can be met and schedules in the appointment, making Descartes Reservations an effective capable-to-promise tool.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 0pt 54pt;"><b style="font-weight:bold;">(4) </b><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;&#160;&#160;</b><b style="font-weight:bold;"> </b><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Descartes Execution and Mobile Solutions:</b><b style="font-family:'Verdana';font-weight:bold;">&#160;</b><b style="font-weight:bold;"> </b><font style="font-style:italic;font-weight:bold;">Descartes Route Planner Dispatch</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;">, Descartes Route Planner OnDemand Dispatch</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;">,</font><font style="font-style:italic;font-weight:bold;"> Descartes MobileLink</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;">, Descartes Food Perform</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;">,</font><font style="font-style:italic;font-weight:bold;"> Descartes Distribution Perform</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;">, </font><font style="font-style:italic;font-weight:bold;">Descartes Transport Perform</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;">, Descartes ShipTrack</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;"> and Descartes GreenMile</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Execution solutions (Descartes Route Planner Dispatch and Route Planner OnDemand) manage routes in progress, tracking their performance, addressing route exceptions as they occur and capturing delivery and pickup status updates. Descartes Execution Solutions facilitate the assignment and execution of pre-planned and same-day pick-ups and deliveries. Descartes Mobile solutions (Descartes MobileLink<font style="font-family:'Verdana';">&#8482;</font>, Descartes Food Perform<font style="font-family:'Verdana';">&#8482;</font>, Descartes Distribution Perform<font style="font-family:'Verdana';">&#8482;</font>, and Descartes Transport Perform<font style="font-family:'Verdana';">&#8482;</font>) provide integrated two-way wireless communication and supports active and passive monitoring capabilities for enhanced logistics execution. By combining route planning and a free flow of information between dispatchers and the field, Descartes Mobile solutions extend the traditional route planning process and provide real-time visibility into the execution of the plan.</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">15</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">The combination of Descartes<font style="font-family:'Verdana';">&#8217;</font> Daily Planning solutions with Descartes Execution and Descartes Mobile solutions form the core of plan versus actual performance evaluation and continuous logistics improvement.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Food Perform, Distribution Perform, and Transport Perform are cloud-based mobile solutions that automate traditional paper-based processes and help streamline complex <font style="font-family:'Verdana';">&#8216;</font>last mile<font style="font-family:'Verdana';">&#8217;</font> logistics processes. These solutions have been tailored to support <font style="font-family:'Verdana';">&#8216;</font>last mile<font style="font-family:'Verdana';">&#8217;</font> commercial processes unique to each industry. They provide configurable, feature-rich mobile technology and advanced electronic proof of delivery operating on a hand-held device carried by drivers and other field personnel.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes ShipTrack provides cloud-based mobile resource management and shipment tracking solutions to help customers automate dispatch, updates on shipment status and estimated time of arrival and eliminate paper-based delivery processes. This highly-configurable and scalable platform is particularly well-suited for the ecommerce home delivery, parcel and medical courier markets, helping these companies efficiently manage final-mile deliveries.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Greenmile is a highly scalable mobile route execution suite that has been built with unique capabilities to serve the global distribution industry. The solution incorporates machine-learning to continually improve service and travel time standards. It helps food and beverage companies to digitize final-mile delivery processes, to eliminate paper from the delivery process, increase efficiencies and improve customer satisfaction.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:36pt;text-align:justify;text-indent:-36pt;margin:0pt 0pt 0pt 54pt;"><b style="font-weight:bold;">(6) </b><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;&#160;&#160;</b><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Reporting and Measuring:</b><b style="font-family:'Verdana';font-weight:bold;">&#160;</b><b style="font-weight:bold;"> </b><font style="font-style:italic;font-weight:bold;">Descartes Analytics </font><font style="font-family:'Verdana';">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Analytics helps companies create and distribute reports within an organization or to suppliers, vendors, sub-contractors or carriers. It provides a simple, secure way to create customized delivery statistics and metrics. It can help simplify the creation and management of supply chain scorecards and, as a byproduct, can help identify best practices.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 0pt 54pt;"><b style="font-weight:bold;">(7)</b><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;&#160;</b><b style="font-weight:bold;"> </b><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Sales and Merchandiser Management:</b><font style="font-style:italic;font-weight:bold;"> Descartes Sales and Merchandiser Management</font><font style="font-family:'Verdana';">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Sales and Merchandiser Management enables resource planning, route building and optimization, and tracking across delivery operations and mobile workforces, including sales representatives, territory managers and merchandisers. Descartes Sales and Merchandiser Management facilitates weekly activity planning, delivery status visibility for merchandisers and sales representatives, actual distance driven, in-store time calculation and work data collection, and consolidated performance reporting. Performance data can be uploaded to corporate payroll and expense reporting systems to ensure appropriate payments are being made for resource performance. Descartes Sales and Merchandiser Management helps our customers improve sales and merchandising productivity, cut costs and improve customer service.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 0pt 54pt;"><b style="font-weight:bold;">(8)</b><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;&#160;</b><b style="font-weight:bold;"> </b><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Telematics and Compliance:</b><font style="font-style:italic;font-weight:bold;"> Descartes Telematics and Compliance</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;">, Descartes Smartanalysis, Descartes SmartLicence</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;">, and Descartes Driver Vehicle Inspection Reports</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> Telematics and Compliance solutions offer next generation mobile handheld devices that can continuously monitor performance of vehicles and drivers. Robust functionality for tracking vehicles, monitoring and scoring driving behavior and automation of driver logs and reporting on driver hours for <font style="font-family:'Verdana';">&#8220;</font>hours of service<font style="font-family:'Verdana';">&#8221;</font> regulatory compliance helps increase workforce productivity and safety, prevents <font style="font-family:'Verdana';">&#8220;</font>hours of service<font style="font-family:'Verdana';">&#8221;</font> violations and reduces or eliminates excess paperwork and processing times. Descartes<font style="font-family:'Verdana';">&#8217;</font> 2018 acquisition of PinPoint GPS Solutions Inc. adds depth, breadth and domain expertise to our offering by enhancing Descartes<font style="font-family:'Verdana';">&#8217;</font> ability to implement, collect and leverage real-time vehicle and trailer information through reseller relationships with Geotab (for telematics devices) and SkyBitz (for trailer tracking devices).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">16</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">In Europe, Descartes<font style="font-family:'Verdana';">&#8217;</font> Smartanalysis product is a leading tachograph analysis and compliance management solution. It is used by road transport operators of all sizes to meet legal obligations and comply with Europe<font style="font-family:'Verdana';">&#8217;</font>s complex driver working time regulations. Descartes SmartLicence is a comprehensive online tool for fleet operators in the United Kingdom for electronically managing driving licenses and verifying license details with the United Kingdom<font style="font-family:'Verdana';">&#8217;</font>s Driver and Vehicle Licensing Agency.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> Driver Vehicle Inspection Reports (DVIR) is a configurable, cloud-based, enterprise-class solution for assuring compliance with routine driver vehicle safety checks required or recommended by the United States Federal Motor Carrier Safety Administration, Canadian Provincial Ministries of Transportation, and the United Kingdom Driver and Vehicle Standards Agency.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">(ii)</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Transportation Management</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 18pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> Transportation Management solutions provide robust, network-based, modular, end-to-end multimodal functionality that spans the entire shipment lifecycle. We streamline and support our customers<font style="font-family:'Verdana';">&#8217;</font> ability to turn purchase or sales order fulfillment into transport orders, manage carrier contracts, optimize and execute transportation plans, execute cross-docked and pooled shipments, connect to trading partners, control the flow of prepaid freight, track shipments and inventory, audit freight and manage supplier/carrier performance. The suite of products addresses unique requirements across truck, air, ocean and parcel modes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:36pt;text-align:justify;text-indent:-36pt;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Transportation Manager</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Transportation Manager facilitates efficient planning and execution of shipping across air, ocean, truck and parcel modes at multiple touch-points in the distribution process. It helps logistics managers, shippers and third parties simultaneously evaluate shipment alternatives to find efficient shipping methods. It is a solution that scales from the loading dock to the enterprise, providing up-to-date rates that allow the customer to both make efficient shipment decisions and comply with carrier communications, manifesting and labeling requirements. The pick, pack and ship capability helps our customers manage small parcel shipments with postal services, a variety of small-package delivery carriers and over 150 less-than-truckload carriers. It evaluates and optimizes transportation purchases across modes for both operational effectiveness and cost efficiency, and helps answer tough questions such as: <font style="font-family:'Verdana';">&#8220;</font>How can I effectively use all of my carrier contracts?<font style="font-family:'Verdana';">&#8221;</font>; <font style="font-family:'Verdana';">&#8220;</font>Who is the most suitable carrier in this mode to handle my shipment?<font style="font-family:'Verdana';">&#8221;</font>; <font style="font-family:'Verdana';">&#8220;</font>What shipments can I combine to lower my costs?<font style="font-family:'Verdana';">&#8221;</font>; and, <font style="font-family:'Verdana';">&#8220;</font>What shipment consolidation should I use - aggregation, multi-stop routes or pooling to reduce costs while meeting service requirements?<font style="font-family:'Verdana';">&#8221;</font>.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:38.15pt;text-align:justify;text-indent:-38.15pt;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Dock Appointment Scheduling</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Dock Appointment Scheduling is a collaborative solution that enables shippers, carriers and consignees to schedule dock door appointments. It streamlines the dock appointment process by distributing the responsibility for scheduling from the warehouse to carriers and suppliers. By ensuring all supply chain partners are involved in the process and have visibility into requested, scheduled and rescheduled dock orders and appointments, this solution is designed to optimize shipping and receiving operations at a warehouse.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 0pt 36pt;"><font style="font-style:italic;font-weight:bold;">Descartes Yard Management</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">A module of Descartes Transportation Manager, Descartes Yard Management enables shipping and receiving staff, gate guards and yard jockeys to more effectively manage the movement of trailers and identify inventory in the yard. Designed to work seamlessly with Descartes Transportation Manager, Descartes Yard Management provides command and control of yards of all sizes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Rate Builder</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Rate Builder is a solution that helps carriers and non-vessel owning common carriers (<font style="font-family:'Verdana';">&#8220;</font>NVOCCs<font style="font-family:'Verdana';">&#8221;</font>) manage global rates, contracts and rate agreements more efficiently and meet regulatory obligations. Descartes Rate Builder enables companies to create, revise, store and</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">17</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">distribute rates via the Internet. Once they are generated, Descartes Rate Builder stores all rates in a central database with controlled access privileges. Carriers can designate a <font style="font-family:'Verdana';">&#8220;</font>contract owner<font style="font-family:'Verdana';">&#8221;</font> who can allow multiple users to contribute during the drafting of a new contract or amendment. NVOCCs can effectively manage a global rate network and help enable logistics service providers (<font style="font-family:'Verdana';">&#8220;</font>LSPs<font style="font-family:'Verdana';">&#8221;</font>) to create and manage both buy-side and sell-side rates digitally, enforce a standardized global pricing policy and implement a global rate request process. &#160; Descartes Rate Builder also supports the audit of ocean bills of lading.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><b style="font-weight:bold;">Descartes Retail Distribution</b><b style="font-family:'Verdana';font-weight:bold;">&#8482;</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">The Descartes Retail Distribution portfolio provides visibility, reduces cost and removes bottlenecks as a retailer<font style="font-family:'Verdana';">&#8217;</font>s products move from a shipper<font style="font-family:'Verdana';">&#8217;</font>s Distribution Center (<font style="font-family:'Verdana';">&#8220;</font>DC<font style="font-family:'Verdana';">&#8221;</font>), consolidation point, or DC bypass facility through third-party transportation provider networks and ultimately to its stores.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Kontainers </font><font style="font-family:'Verdana';">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> Kontainers is a digital freight booking platform that facilitates a fully digitized customer experience across quoting, booking, tracking and dashboard analytics. It enables LSPs to rapidly create branded state-of-the-art digital experiences for their end customers using advanced API<font style="font-family:'Verdana';">&#8217;</font>s to integrate to existing rate management and back-office systems.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Global Price Management</font> <font style="font-family:'Verdana';">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> Global Price Management helps logistics service providers streamline and automate complex global shipping rate management processes. It has robust capabilities to manage global shipment routing, pricing, rating and capacity allocation. The solution integrates with other enterprise systems that need fast, accurate, and complete shipping and pricing options, including CRM, transportation management, and customer-facing online booking platforms, such as Descartes Kontainers.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes MacroPoint</font><b style="font-family:'Verdana';font-weight:bold;">&#8482;</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes MacroPoint is a multimodal freight visibility platform for shippers, brokers and 3PLs to get real-time visibility and predictive analytics for in-transit freight. Our industry-leading visibility network is connected to over 100,000 carriers and millions of assets and drivers through integrations with on-board electronic logging devices, GPS telematics devices, carrier transportation management systems (<font style="font-family:'Verdana';">&#8220;</font>TMS<font style="font-family:'Verdana';">&#8221;</font>) and GPS-enabled smartphone applications.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes MacroPoint</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;"> for Capacity Matching</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes MacroPoint<font style="font-family:'Verdana';">&#8482;</font> for Capacity Matching provides freight brokers with greater visibility to the transportation capacity available within their network of carriers and cooperating brokers. By accessing previously unused freight capacity using advanced visualization and analytical capabilities, freight brokers can cover more loads, build stronger carrier relationships and reduce costs.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Aljex</font><b style="font-family:'Verdana';font-weight:bold;">&#8482;</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">The Descartes Aljex solution provides back-office transportation management for freight brokers and transportation providers. These solutions help customers automate business processes and create electronic documents critical for executing transportation moves. In addition, customers can manage the lifecycle of a shipment from order creation through execution, including real-time tracking with connectivity to the Descartes MacroPoint network.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes BestTransport</font><b style="font-family:'Verdana';font-weight:bold;">&#8482;</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes BestTransport is a cloud-based TMS tailored for flatbed-intensive manufacturers and distributors. It provides capabilities that address requirements from contract rate management through to load building, shipment execution and freight payment for flatbed transportation moves.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">(iii)</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Ecommerce Shipping and Fulfillment</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">18</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 18pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> Ecommerce Shipping and Fulfillment. Solutions help customers seamlessly integrate and connect to ecommerce marketplaces, shopping carts, and other systems; digitally transform warehouse operations through intelligent, mobile-based solutions; and leverage parcel shipment optimization and execution to reduce costs and improve service.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes OzLink</font><font style="font-family:'Verdana';">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes OzLink is a platform for integrating and extending ERP, accounting, ecommerce, and WMS systems to streamline order management, inventory control, and shipping. The solution functions as a complement to core business systems where gaps exist in the flow of data and/or system automation. Descartes OzLink<font style="font-family:'Verdana';">&#8217;</font>s standard integration modules and business process extensions can help seamlessly move data between systems and automate tasks to eliminate labor-intensive clerical work, error-prone data entry, lead time delays, and compromised customer service. The solution can flexibly connect systems that run in the cloud, operate on premise or within a hosted environment to address an extensive range of ecommerce, warehousing, and shipping processes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes pixi eCommerce Fulfillment/ Warehouse Management</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes pixi eCommerce Fulfillment/Warehouse Management helps customers automate ecommerce processes originating from online orders. Integrated with hundreds of ecommerce sites in Europe, the solution enables small-to-medium sized businesses and large retailers looking to enhance their online presence to support the growing consumer demand for omnichannel deliveries. The solution collects order information from ecommerce websites, translates it into a scanner-driven pick and pack process within the warehouse, initiates the shipment to the customer, and synchronizes all of this information with the customer<font style="font-family:'Verdana';">&#8217;</font>s financial system for invoicing and shipment tracking.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Peoplevox</font><b style="font-family:'Verdana';font-weight:bold;">&#8482;</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1.1pt 54pt;">Descartes Peoplevox is a cloud-based warehouse management and ecommerce fulfillment solution that helps online retailers connect to webshop front ends, translate order information into a mobile-driven pick and pack process, and then feed parcel delivery systems for shipment execution. With sales and implementation services that can be provided completely remotely, it<font style="font-family:'Verdana';">&#8217;</font>s rapid to deploy.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1.1pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes ShipRush</font><b style="font-family:'Verdana';font-weight:bold;">&#8482;</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1.1pt 54pt;">Descartes ShipRush helps customers ship efficiently and cost-effectively by integrating with front-end commerce systems and parcel shipping providers for seamless package labelling, rating, tracking and postage processing. With integrations to over 70 business systems, including leading ERP, ecommerce and supply chain platforms, the ShipRush platform helps customers to streamline their supply chain and reduce transportation costs. Using the solution, companies can automatically import orders; compare carrier rates in real-time to get the best options every time; print shipping labels for FedEx, UPS, USPS, and other major U.S. and global carriers; and track shipments through to final delivery.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">(iv)</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Customs &amp; Regulatory Compliance</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 18pt;">Our Customs &amp; Regulatory Compliance solutions help companies meet regulatory requirements for international shipments and the necessary customs declarations and security initiatives. We offer different methods to transmit shipment information directly to customs authorities or to the carriers who may be compiling data for security filing, which helps to ensure the smooth delivery of cargo as it moves through ports and airports, and ultimately to the end customer.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Global Cargo Security </font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">For carriers, freight forwarders, NVOCCs and shippers, Descartes Global Cargo Security Suite offers solutions which help customers comply with electronic manifest filing initiatives across a broad number of countries that have adopted various advance security filing requirements spanning different modes of transportation. To accommodate customers<font style="font-family:'Verdana';">&#8217;</font> varying technical capabilities, we offer options that range from user-friendly web portals that permit manual</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">19</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">entry of cargo manifest information through to tightly integrated system-to-system electronic data interchange (<font style="font-family:'Verdana';">&#8220;</font>EDI<font style="font-family:'Verdana';">&#8221;</font>) connections. Descartes<font style="font-family:'Verdana';">&#8217;</font> offerings in this area include the Descartes Importer Security Filing<font style="font-family:'Verdana';">&#8482;</font>, Descartes ACI eManifest<font style="font-family:'Verdana';">&#8482;</font>, Descartes Advance Electronic Information (AEI)<font style="font-family:'Verdana';">&#8482;</font>, Descartes ACAS Solution<font style="font-family:'Verdana';">&#8482;</font> and others.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Export Compliance</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Export Compliance suite offers denied party screening, license validation and audit for all international trading partners. &#160;Screening parties for acceptability for receipt of product and the proper use of export licenses is essential to<font style="font-family:'Verdana';">&#160;</font>support compliance with the US and EU requirements for export.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Border Compliance</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Border Compliance provides customs compliance services to assist transportation providers and LSPs with imports and/or exports to Canada, the US, India and the Netherlands. Through our Viatrade Service, the GLN offers an enhanced range of services to help carriers and LSPs negotiate increasingly complex document exchange requirements brought about by international security initiatives and tightened borders. In addition, Descartes Border Compliance services enable customs brokers to receive electronic manifests and invoices from transportation carriers so that the manifest can be mapped to the Canadian and US customs release systems.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Ocean Tariff Compliance</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Ocean Tariff Compliance helps ocean carriers comply with US Federal Maritime Commission requirements, and also helps manage the rate information for cargo that moves according to the terms of a privately-negotiated service contract or NVOCC Service Arrangement rather than the public rates of a tariff.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Electronic In-Bond</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Specifically designed for transportation carriers, Descartes Electronic In-Bond helps transmit the necessary advance electronic cargo information to CBP regarding inbound shipments prior to their arrival in the US. Using approved EDI protocols for the transmission of advance cargo information, we help carriers complete the requirements for filing, and receive in-bond movement authorization within minutes instead of hours or even days.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Customs Warehouse Management</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Customs Warehouse Management solution can play an integral role in simplifying procedures associated with customs warehousing, while taking advantage of the maximum available benefits. This on-demand solution is specifically designed to allow users to manage goods stored under the customs warehouse procedure, by storing information on imported goods and accounts, tracking all movement and activity, and enabling more accurate and timely electronic declaration processing. Customs warehousing is used by many organizations as a means to suspend/defer import duties and/or value-added tax on goods entering the EU. It is an effective and efficient means of enabling importers to choose an optimum time to clear goods and pay duties or re-export them outside of the EU.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Global Customs &amp; Transport</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> Global Customs &amp; Transport (<font style="font-family:'Verdana';">&#8220;</font>GCT<font style="font-family:'Verdana';">&#8221;</font>) suite provides its customers with European-centric customs declaration, security filing, transportation management and freight forwarding technology solutions on both a cloud-based basis and a deployed model. The GCT platform supports fiscal customs filings in 18 countries and security filings in all 28 EU member states.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Pentant</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Pentant<font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;"> </font>is a Community System Provider (<font style="font-family:'Verdana';">&#8220;</font>CSP<font style="font-family:'Verdana';">&#8221;</font>) in the UK providing manufacturers, retailers, distributors and logistics service provider customers with a reliable and secure connection to both CDS (the UK<font style="font-family:'Verdana';">&#8217;</font>s central system for customs declarations) and the EU<font style="font-family:'Verdana';">&#8217;</font>s ICS to streamline declaration, cargo security and clearance processes. Pentant also helps customers meet UK Revenue &amp; Customs requirements for imports and exports to be managed</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">20</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">through a fully approved inventory control system for the ports of Dover, Portland, Poole, Plymouth, Teignmouth, Bideford, Scrabster, as well as London City and Warton airports.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes e-customs</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes e-customs<font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font> is a modular, cloud-based solution offering that helps manufacturers, retailers, distributors and logistics service providers to cost-effectively comply with UK and fiscal security filing requirements. It is designed to reduce complexity, increase automation, and facilitate the end-to-end customs declaration process. Importers and exporters can leverage default and client-specific standing data, declaration templates, historical filings, on-screen tips and system validations to increase speed and accuracy in the filing process.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">(v)</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Global Logistics Network Services</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 18pt;">GLN services simplify cargo and freight management by providing electronic services to the cargo industry and to companies who engage in international and domestic transportation activities. GLN provides a secure and reliable transaction exchange plus connectivity services that include trading partner on-boarding programs, data standards and protocol conversion, transportation-specific document compliance, audit and error checking, and archiving. We offer several document management, connectivity and community services, including:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes CargoAssist</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Freight forwarders use Descartes CargoAssist to improve freight booking, send electronic waybills and ensure that consignments are handled quickly and efficiently at freight terminals around the world. We provide freight forwarders with access that connects them with their customers and logistics partners.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes e-Pouch</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">As part of the Descartes air cargo solution suite, Descartes e-Pouch integrates with applications for bookings, shipment monitoring, quality performance reporting and customs filing to provide a central repository that enhances electronic document exchange connections between back-office system and trading partners. Descartes e-Pouch provides users with the functionality to facilitate the sharing of information with approved parties, automate routine interactions, help flag problems at an early stage and provide a repository for retrieval of completed deliveries.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes webDocs</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Freight forwarders use Descartes webDocs web forms to help improve air freight booking processes, send electronic waybills and distribute freight messages with the required information directly to the air carriers. Descartes webDocs gives forwarders access to electronic web forms that enables quick and easy creation of the various documents and electronic messages that are dictated by the industry, such as the International Air Transport Association<font style="font-family:'Verdana';">&#8217;</font>s (<font style="font-family:'Verdana';">&#8220;</font>IATA<font style="font-family:'Verdana';">&#8221;</font>) e-freight requirements. The solution also provides forwarders with the ability to easily create messaging documents such as master airway bill, house airway bill and labels and transmit these documents electronically to the air carrier.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Data Integrity Services</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Data Integrity Services continuously monitors messages and their delivery to trading partners to identify and report errors. Once an error is identified, we contact trading partners and coordinate the correction of inaccuracies and re-submission of corrected data. The service also provides periodic summary reports by trading partner, message type and error type.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Cargo iQ</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;"> (formerly Cargo 2000</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;">)</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Cargo iQ allows customers to monitor shipments at a master air waybill level from airport to airport, assisting customers in complying with IATA Cargo 2000 certification process. Information provided by the system includes quality report compilation, shipment status, exception alerts, route map creation, and departure time reporting. This information enables better decision-making for fulfilling customer expectations and ensures standardized processes for improved service levels.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">21</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Carrier Portal</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Carrier Portal is a cost-effective and efficient solution designed to help carriers without EDI capabilities, shippers, and freight payment agencies (<font style="font-family:'Verdana';">&#8220;</font>FPAs<font style="font-family:'Verdana';">&#8221;</font>) realize all the benefits of EDI capabilities without the complexity of in-house solutions. The solution is a web-based information service that facilitates the collaboration and automation of load tendering and freight payment between highway carriers and shippers (or FPAs representing them). The carrier portal bridges the gap between EDI-enabled back office systems of shippers and FPAs and less automated carriers.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Supplier Portal</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Supplier Portal enables suppliers without EDI capabilities to electronically communicate and collaborate with EDI enabled carriers, logistics service providers and shippers by providing capabilities to schedule pick-ups, automate tendering, and track the status of shipments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes GLN eArchiving</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Descartes GLN eArchiving enables customers to store and archive electronic documents in an <font style="font-family:'Verdana';">&#8220;</font>electronic safe<font style="font-family:'Verdana';">&#8221;</font>. This electronic safe is accessible from the GLN via which relevant documents can be forwarded to customer<font style="font-family:'Verdana';">&#8217;</font>s data warehouse to comply with standards and document retention policies.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Port Community Services</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Port Community Services assist in improving cargo clearance and management operations for local port communities and their trading partners by connecting and streamlining information exchange between ocean carriers, inland carriers, forwarders, shippers, terminal operators, and port and customs authorities.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Global Data Catalog Connect</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> Global Data Catalog Connect provides retail/supplier collaboration, product catalog management and electronic business-to-business messaging. It is a web-based application that helps in the upload, management and exchange of data. It offers the ability to integrate with industry standard data pools like GS1DAS for automation of electronic product catalogue functionality.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes B2B Integration</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes B2B Integration<font style="font-family:'Verdana';">&#8482;</font> solution provides cloud-based supply chain connectivity capabilities to a wide range of systems and platforms using most any protocol or method. Our advanced solutions automate supply chain processes, enhance collaboration and add visibility among global trading partners. Users can benefit from cost-effective transaction management, automated purchase to pay capabilities, connectivity to multiple ERP systems and more.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes STEPCom</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes STEPcom connects B2B trading partners to enable the collaboration and exchange of electronic data, automation of supply chain processes and management of a wide array of complex, mission-critical documents used in procure-to-pay and order-to-cash processes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes Velocity Mail</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes Velocity Mail is an air mail and parcel management and tracking solution that leverages mobile devices to automate the entire air mail process from route generation to accounting reconciliation with real-time tracking and delivery visibility.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes COREInsight</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes COREInsight is a suite of supply chain applications that provides transportation management and tracking capabilities for air cargo shipments and assets.</p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:72pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">COREInsight Postal manages the process of mail and postal product movement for domestic and international air mail. It provides airlines with operational visibility of mail moving in their network, as well as financial forecasting and performance insights.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">22</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:72pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">COREInsight ULD solution provides real-time tracking of unit load devices (ULD), a specialized container used for air cargo, as well as the freight contained in each ULD. The solution helps carriers better match capacity with ULD inventory, reduce ULD fleet losses, and reduce costs associated with misplaced equipment or the requirement to lease additional ULDs.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">(vi)</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Broker &amp; Forwarder Enterprise Systems</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 18pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> Broker &amp; Forwarder Enterprise Systems are designed to help brokers and forwarders more efficiently run complex international operations. Our on-demand solutions enable large and small organizations to take advantage of robust capabilities for bookings, security filings and customs entries, shipment and financial management. They automate the collection of shared data and multi-party shipment processes as well as help brokers and forwarders extend the command of operations with their logistics partners to help meet their delivery performance objectives.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="font-style:italic;font-weight:bold;">Descartes ITMR4</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;"> Canadian Customs Brokerage Suite</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;">Descartes ITMR4 Canadian Customs Brokerage Suite is an on-demand, enterprise level software solution that handles functions that a customs broker, freight forwarder or self-filing importer typically uses to manage its operations. Those operations include documentation filing, accounting, financial reports, imaging, e-billing and web tools for tracking and tracing, reporting and data entry related to Canadian customs declarations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes EDItrade</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;"> Customs Link</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Descartes EDItrade Customs Link allows custom brokers and self-filing importers to collect data and prepare it for US customs ACE entries, including cargo release, remote location filing and post-entry compliance and supportive modules and the range of PGA documentation and data requirements to streamline the customs process and create accurate declarations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes European Brokerage and Declaration</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Descartes European Brokerage &amp; Declaration helps simplify the complexities of customs clearance in the European market. Descartes<font style="font-family:'Verdana';">&#8217;</font> solution is Authorized Economic Operator compliant. It has a variety of modules to handle export management, import management, creation of the Single Administrative Document for normal or simplified procedures, incoming and outgoing transit declarations, connectivity to the New Computerized Transit System and facilitates compliance with different member state customs authorities<font style="font-family:'Verdana';">&#8217;</font> requirements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes OneView</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font><font style="font-style:italic;font-weight:bold;"> Forwarder Enterprise &amp; Customs House Brokerage Solution</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Descartes OneView Forwarder Enterprise &amp; Customs House Brokerage Solution allows freight forwarders, NVOCCs and third-party logistics service providers to effectively coordinate air, truck and ocean import/export shipments. It supports end-to-end planning and execution of international shipments, including leveraging system data to prepare and submit customs entries and cargo security filings to CBP.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes NetCHB</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> NetCHB platform enables customs brokers to connect to the US CBP Automated Broker Interface (ABI) to electronically execute both fiscal customs declarations and cargo security filings. The solution is particularly strong for managing US CBP Section 321 Type 86 filings for low-value ecommerce shipments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes ForwarderLogic</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Descartes ForwarderLogic is a cloud-based solution that provides comprehensive back-office functionality and real-time information exchange for LSPs handling all modes (air, ocean and land), inland/international import and export shipments from purchase orders all the way through to final delivery.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes Foreign Trade Zone Management </font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">The Descartes Foreign Trade Zone Management<font style="font-family:'Verdana';">&#8482;</font> solution unifies import, export, logistics, compliance and financial processes including filing with regulatory agencies (e.g. CBP),</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">23</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Harmonized Tariff Schedule classifications, export licensing, denied party screening, comprehensive product catalog, tracking, event management and international document repository. To further reduce data redundancy, the solution incorporates information-sharing capabilities with import, export, customs house brokers and freight forwarding components. Electronic connectivity to regulatory agencies enables seamless electronic customs document filing and clearance. The Descartes Foreign Trade Zone Management solution can be used with existing warehouse management solutions or one provided by Descartes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes Shipment Portal</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Descartes Shipment Portal<font style="font-family:'Verdana';">&#8482;</font> is a web-based portal that helps forwarders and shippers collaborate for shipment creation and status tracking throughout the shipment<font style="font-family:'Verdana';">&#8217;</font>s lifecycle. Powered by the Descartes GLN with extensive existing EDI connectivity, the solution aggregates information from these parties and enables forwarders and their customers to build dashboard views of their transportation portfolio for up-to-the minute information on a wide range of data points. The solution also features purchase order management tools that support extensive collaboration between shippers, suppliers and transportation providers, and centralizes transportation request processes so forwarders can offer their customers a single point for up-to-date information on their global shipments<font style="font-style:italic;font-weight:bold;">.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">(vii)</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Global Trade Intelligence Solutions &amp; Services</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 18pt;">Descartes<font style="font-family:'Verdana';">&#8217;</font> global trade intelligence solutions help customers research and make informed supply chain decisions; monitor and evaluate potential growth opportunities, logistics partners, and competitors; classify goods appropriately to ensure compliance while minimizing duties and tariffs; and reduce the risk of transacting business with denied parties while establishing an audit trail of reasonable care practices. Global trade content from Descartes can also be used on a service basis, to directly populate ERP and global trade management systems to enhance automation and compliance processes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes Customs Info</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Descartes Customs Info helps customers research and make better classification decisions while providing a record of the process to support classification determinations. This robust global trade content offering provides various levels of access to millions of reference documents, including cross-referenced and searchable duty rates, customs rulings, regulations, WCO Explanatory Notes, WCO Opinions, Commodity Export Codes, Other Government Agency information, Customs Directives, Export Control Classification Number locators and more<i style="font-style:italic;">.</i></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes Datamyne</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">With a comprehensive database of accurate, up-to-date import-export information, Descartes Datamyne delivers actionable intelligence for market research, sales insight, supply chain management, enhanced security and competitive strategy. The Descartes Datamyne solution includes one of the largest searchable resources of trade activity. Manufacturers, shippers, wholesalers, transport and logistics service providers, management consultants, legal practitioners, industry analysts and others use this data and the analysis tools to evaluate growth strategies, explore new markets, benchmark performance, monitor commodity volumes and values, simplify trade data research, discover buyer-seller relationships and refine sourcing strategies.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes MK Denied Party Screening</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Descartes MK Denied Party Screening provides easy-to-use options to quickly and efficiently screen customers, suppliers and trading partners against a comprehensive database of international restricted and denied party lists. Customers can tailor screening processes to fit their unique risk parameters and flag potential compliance issues for resolution.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="font-style:italic;font-weight:bold;">Descartes Visual Compliance</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8482;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">Descartes Visual Compliance offers more robust solutions for restricted and denied party screening, classification, automation, and export license management. These intuitive solutions</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">24</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;">to enhance compliance and mitigate risk include capabilities for integrated screening, visually-driven compliance workflow management, and robust export control and documentation.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 53.85pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Consulting, Implementation and Training Services</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Our consulting team provide a variety of professional services to customers. These services include project management and consulting services to assist in configuration, implementation and deployment of our solutions. We offer a variety of site-specific technical and consulting services to assist in all phases of the implementation process. We also provide assistance in integrating our products with the customer&#39;s existing software. In addition, we offer training services that provide customers with a formalized program to ensure that applications are implemented and utilized in an efficient and cost-effective manner.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Customer Service and Support and Maintenance</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We provide worldwide support to our customers through our central support system. Our customer support program is conducted via telephone, online customer portal and/or email and with our extended support options can be available 24-hours-a-day, 7-days-per-week.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">4.3 </b></font><b style="font-weight:bold;">Revenue Sources</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We generate our revenues from sales of each of the services and products identified in the previous section, which are sometimes sold on a stand-alone basis and sometimes sold as bundles of services and products. As such, we do not measure our revenues by the particular services or products referenced above. Instead, we measure our revenue performance based on whether the customer is buying a license to our technology or is buying technology services or other services from us. Based on this, our revenues are measured in three categories: license revenues; services revenues; and professional services and other revenues. Services revenues are comprised of ongoing transactional and/or subscription fees for use of our services and products by our customers and maintenance fees, which include revenues associated with our provision of maintenance and support for 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 one business segment providing logistics technology solutions. The following table provides revenue information by revenue source for fiscal 2022 and 2021:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:16.65pt;"><td rowspan="3" style="vertical-align:top;width:26.99%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">Revenues</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td colspan="4" style="vertical-align:top;width:73%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 2pt 0pt;">Fiscal year ended January 31</p></td></tr><tr style="height:10.65pt;"><td style="display:none;vertical-align:top;width:26.99%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td colspan="2" style="vertical-align:top;width:34.72%;border-bottom:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 2pt 0pt;">2022</p></td><td colspan="2" style="vertical-align:top;width:38.28%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 2pt 0pt;">2021</p></td></tr><tr style="height:10.65pt;"><td style="border-top-style:solid;border-top-width:1px;display:none;vertical-align:top;width:26.99%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:15.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">Amount</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">(in millions)</p></td><td style="vertical-align:top;width:19.58%;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">Percentage of Total Revenues</p></td><td style="vertical-align:top;width:18.7%;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">Amount</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">(in millions)</p></td><td style="vertical-align:top;width:19.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">Percentage of Total Revenues</p></td></tr><tr style="height:12pt;"><td style="vertical-align:top;width:26.99%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;">License</p></td><td style="vertical-align:middle;width:15.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">$5.1</p></td><td style="vertical-align:middle;width:19.58%;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">1%</p></td><td style="vertical-align:middle;width:18.7%;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">$5.1</p></td><td style="vertical-align:middle;width:19.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">1%</p></td></tr><tr style="height:12pt;"><td style="vertical-align:top;width:26.99%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;">Services</p></td><td style="vertical-align:middle;width:15.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">378.5</p></td><td style="vertical-align:middle;width:19.58%;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">89%</p></td><td style="vertical-align:middle;width:18.7%;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">309.7</p></td><td style="vertical-align:middle;width:19.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">89%</p></td></tr><tr style="height:10.65pt;"><td style="vertical-align:top;width:26.99%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;">Professional services and other</p></td><td style="vertical-align:top;width:15.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">41.1</p></td><td style="vertical-align:top;width:19.58%;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">10%</p></td><td style="vertical-align:top;width:18.7%;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">33.9</p></td><td style="vertical-align:top;width:19.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">10%</p></td></tr><tr style="height:12pt;"><td style="vertical-align:top;width:26.99%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">Total revenues</b></p></td><td style="vertical-align:top;width:15.13%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">$424.7</b></p></td><td style="vertical-align:top;width:19.58%;border-bottom:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">100%</b></p></td><td style="vertical-align:top;width:18.7%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">$348.7</b></p></td><td style="vertical-align:top;width:19.58%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">100%</b></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">4.4 </b></font><b style="font-weight:bold;">Customer Base</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Our customers are globally diverse, located in the Americas, Europe, Middle East and Africa (<font style="font-family:'Verdana';">&#8220;</font>EMEA<font style="font-family:'Verdana';">&#8221;</font>) and Asia Pacific regions. Our customers range from small- and medium-sized enterprises to established <font style="font-family:'Verdana';">&#8220;</font>blue-chip<font style="font-family:'Verdana';">&#8221;</font> leaders across a variety of industry verticals. We have a large customer base of transportation carriers, third-party logistics providers, freight forwarders, NVOCCs and customs brokers. Other customers include government customs and census agencies, manufacturers, retailers, consumer products suppliers,</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">25</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">wholesale distributors, and companies in industries such as healthcare, recycling/waste management, pharmaceuticals and oil and gas.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The following table provides revenue information by geographic region based on the location of our customers:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:16.65pt;"><td rowspan="3" style="vertical-align:top;width:26.99%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">Revenues</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td colspan="4" style="vertical-align:top;width:73%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 2pt 0pt;">Fiscal year ended January 31</p></td></tr><tr style="height:10.65pt;"><td style="display:none;vertical-align:top;width:26.99%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td colspan="2" style="vertical-align:top;width:34.72%;border-bottom:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 2pt 0pt;">2022</p></td><td colspan="2" style="vertical-align:top;width:38.28%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 2pt 0pt;">2021</p></td></tr><tr style="height:10.65pt;"><td style="border-top-style:solid;border-top-width:1px;display:none;vertical-align:top;width:26.99%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:15.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">Amount</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">(in millions)</p></td><td style="vertical-align:top;width:19.58%;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">Percentage of Total Revenues</p></td><td style="vertical-align:top;width:18.7%;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">Amount</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">(in millions)</p></td><td style="vertical-align:top;width:19.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">Percentage of Total Revenues</p></td></tr><tr style="height:17.25pt;"><td style="vertical-align:top;width:26.99%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;">United States</p></td><td style="vertical-align:middle;width:15.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">$242.1</p></td><td style="vertical-align:middle;width:19.58%;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">57%</p></td><td style="vertical-align:middle;width:18.7%;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">$211.2</p></td><td style="vertical-align:middle;width:19.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">61%</p></td></tr><tr style="height:10.65pt;"><td style="vertical-align:top;width:26.99%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;">Europe, Middle-East and Africa</p></td><td style="vertical-align:top;width:15.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">129.0</p></td><td style="vertical-align:top;width:19.58%;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">30%</p></td><td style="vertical-align:top;width:18.7%;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">94.2</p></td><td style="vertical-align:top;width:19.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">27%</p></td></tr><tr style="height:12pt;"><td style="vertical-align:top;width:26.99%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;">Canada</p></td><td style="vertical-align:top;width:15.13%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">36.1</p></td><td style="vertical-align:top;width:19.58%;border-bottom:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">9%</p></td><td style="vertical-align:top;width:18.7%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">29.4</p></td><td style="vertical-align:top;width:19.58%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">8%</p></td></tr><tr style="height:12pt;"><td style="vertical-align:top;width:26.99%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;">Asia Pacific</p></td><td style="vertical-align:top;width:15.13%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">17.5</p></td><td style="vertical-align:top;width:19.58%;border-bottom:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">4%</p></td><td style="vertical-align:top;width:18.7%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">13.9</p></td><td style="vertical-align:top;width:19.58%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;">4%</p></td></tr><tr style="height:12pt;"><td style="vertical-align:top;width:26.99%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">Total revenues</b></p></td><td style="vertical-align:top;width:15.13%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">$424.7</b></p></td><td style="vertical-align:top;width:19.58%;border-bottom:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">100%</b></p></td><td style="vertical-align:top;width:18.7%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">$348.7</b></p></td><td style="vertical-align:top;width:19.58%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 2pt 0pt;"><b style="font-weight:bold;">100%</b></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">4.5</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">Sales and Marketing</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="display:inline-block;text-indent:0pt;width:36pt;"><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">(a)</font></font><u style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Sales Force</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Our sales force is expected to sell across our solutions, targeting specific industry verticals and geographies. At present, we sell most of our products and services through a direct sales team that is focused primarily on the North American and EMEA markets. We have a limited direct sales presence in Asia Pacific with resources in Australia, China, Hong Kong and Japan. As at January 31, 2022, we employed a total of 227 individuals in sales and marketing roles and had active relationships with approximately 97 distributors and resellers.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We are headquartered in Waterloo, Ontario, Canada, with additional representative offices in Canada in Ottawa, Ontario; Toronto, Ontario; Windsor, Ontario; Montreal, Quebec and Sorel-Tracy, Quebec. Our primary representative offices in the United States are in Irvine, California; Denver, Colorado; Miami, Florida; Atlanta, Georgia; Silver Spring, Maryland; Westborough, Massachusetts; Minneapolis, Minnesota; Midland Park, New Jersey; Cleveland, Ohio; Columbus, Ohio; Pittsburgh, Pennsylvania; Trevose, Pennsylvania; and Seattle, Washington. In Europe, our primary representative offices are in Ghent, Belgium; Lier, Belgium; Glostrup, Denmark; Munich, Germany; &#160;Leipzig, Germany; Hamburg, Germany; Dublin, Ireland; Amersfoort, Netherlands; Woerden, Netherlands; Oslo, Norway; Fredrikstaad, Norway; Zilina, Slovakia; Ljubljana, Slovenia; Madrid, Spain; Malmo, Sweden; Gotenborg, Sweden; Murten, Switzerland; Rheinfelden, Switzerland; Chippenham, UK; and Totton, UK. In South America, our primary representative offices are in Montevideo, Uruguay; Buenos Aires, Argentina; Sao Paulo, Brazil and Fortaleza, Brazil. In Asia Pacific, our primary representative offices are in Nelson, New Zealand; Makati City, Philippines; Hong Kong; Tokyo, Japan; Suzhou, China; and Shanghai, China.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="display:inline-block;text-indent:0pt;width:36pt;"><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">(b)</font></font><u style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Strategic Marketing Alliances</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Through our United by Design alliance program, we also form strategic partnerships with various companies in different geographic markets, in different industries and for different products with the goal of expanding our market base. Typically, an alliance participant will market our products in certain geographic and vertical markets and refer customers to us, in exchange for a fee in respect of new customers generated by the alliance participant. Additionally, we have established several working relationships with telecommunication companies, management consulting firms, and complementary hardware and software firms.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Our various channel partners, including a variety of distributors and value-added resellers, play a central role in our strategy to address global customers, particularly in the Asia Pacific region and in Latin America with our delivery management solutions.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">26</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">4.6</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">Research and Development</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We believe that our future success depends in large part on our ability to maintain and continually enhance our current product lines and form tight integrations with our applications on our Logistics Technology Platform. Accordingly, we invest in product development to ensure that sufficient resources are focused on developing new products or enhancing our existing products. We also believe that it is important that our technology keeps pace with evolutions in hardware, applications and services that enable us to operate and deliver our own services at lower cost. In 2022, we incurred research and development expenses of approximately $62.6 million, or approximately 15% of our annual consolidated revenues for 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We continue to make substantial investments in research and development based on our belief that our ability to enhance existing applications, develop and introduce new applications that keep pace with technological advances, meet changing customer requirements, respond to competitive products and achieve market acceptance is important to our growth and future financial performance.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Our research and development program requires in-depth knowledge of logistics, supply chain and customer know-how from business analysis, network operations and design, technical design, and quality assurance. Particular expertise in solving operations research or logistics problems is a benefit to us, as is practical experience in dealing with the day-to-day challenges that our customers face in dealing with logistics providers and deliveries in general. We believe that we are well positioned to address our customers<font style="font-family:'Verdana';">&#8217;</font> requirements with our existing complement of resources; however, we evaluate our staffing levels on an ongoing basis particularly in those areas where we see ways we might expand or expedite our development processes as necessary to meet market opportunities or changes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">To build applications, we have implemented an application development process based on size, deployment mode and complexity. For our smaller, less complex applications as well as for our network services and SaaS solutions, we have adopted an approach centered on frequent, smaller application updates. With the applications and solutions being deployed in our own, known environment and technology infrastructure, we are able to minimize development time otherwise needed to accommodate the myriad of platforms that an application may be used over. Using this approach, the majority of these applications, network services and SaaS solutions were updated in fiscal 2022. &#160;By leveraging public cloud infrastructure and public cloud services we have been able to reduce development and deployment lead times and at the same time expand our geographical presence.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">For our larger more complex applications and solutions, we have adopted a four- to twelve-month release cycle. While we generally use the same underlying development methodology, building in smaller incremental blocks, we apply a more traditional process for review and quality assurance testing as well as bundling of several of these incremental blocks into each generally available release. Using this four- to twelve-month release schedule, most of our larger and more complex generally available applications and solutions were enhanced in fiscal 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Enhancements not yet generally commercially available are typically subject to internal testing and, where applicable, additional testing may be conducted with select customers, following which we release the enhancements for general commercial use.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We continue to build and develop our network infrastructure to enhance our delivery of services to our customers. We continue to execute on our internal <font style="font-family:'Verdana';">&#8216;</font>One Networked Enterprise<font style="font-family:'Verdana';">&#8217;</font> initiative whereby we are consolidating legacy network infrastructure acquired as part of previous acquisition activities. We anticipate continuing this initiative through fiscal 2023, including the advancement of additional integration activities resulting from new acquisitions. To facilitate these advancements in integration activities, we continue to invest in our integration platform with a specific focus on decoupling business logic from the presentation layer.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We estimate that the costs for our planned research and development activities in fiscal 2022 will not result in any significant increase relative to our historical expenditures on research and development activities.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">27</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">4.7 </b></font><b style="font-weight:bold;">Competition</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Although we have experienced limited competition to-date from companies with broad application suites with comparable capabilities, the market for our applications is nevertheless highly competitive and subject to rapid technological change. As such, we expect competition to increase in the future. On an application-by-application basis, especially in markets where similar technology has been available for some time, such as routing software and value-added networks, we do experience competition from established vendors. However, we have found that our particular expertise in solving complex logistics problems on a network basis has enabled us to remain competitive. On a geographic basis, we experience competition from both multinational companies and local competitors. We face some disadvantage in entering new markets where competitors may have existing solutions with user interfaces that are advanced in local language presentation. To maintain and improve our competitive position on a global basis, we continue to develop and introduce new applications with the functionality to be easily adapted to local user interface needs (either by Descartes or its distributors in a particular region).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We compete or may compete, directly or indirectly, with the following: (i) application software vendors, including supply chain planning and execution software vendors, that may broaden their product offerings by internally developing, or by acquiring or partnering with, independent developers of supply chain network solutions, particularly on the execution (rather than planning) side, such as Manhattan Associates, Blue Yonder, Solera (formerly Omnitracs/Roadnet), Verizon (formerly, Telogis) and Ortec; (ii) enterprise resource planning software vendors who may expand their current offerings into supply chain network service offerings, some of whom may from time to time jointly market our products as a complement to their own systems, such as SAP AG, Oracle and Infor Global Solutions; (iii) internal development efforts by corporate information technology departments; (iv) middleware software and service vendors that provide integration software, such as Software AG and SPS Commerce; (v) telematics solution providers, such as Verizon (formerly, Fleetmatics), Omnitracs and Trimble Navigation; (vi) other value-added messaging and visibility networks, such as those offered by Kleinschmidt, OpenText GXS, CHAMP Cargosystems, FourKites and Project 44; (vii) other cargo booking portals, such as Cargo Portal Services operated by Unisys Corporation and E2Open (formerly, INTTRA); (viii) other customs compliance and forwarder back-office solution providers, such as E2Open (formerly Blu-Jay Solutions and Kewill) and WiseTech; (ix) other customs and security declaration providers, often specialized in particular domestic markets, such as AEB GmbH and MIC Datenverabeitung GmbH; (x) other trade data providers who may either bundle their data with a global trade management system, such as E2Open (formerly Amber Road), provide trade intelligence platforms such as IHS Markets and S&amp;P Global or sell trade data content on a standalone basis, such as Thomson Reuters; and (xi) eCommerce shipping and fulfillment providers such as ShipStation, Stamps.com, ShipHawk, Finale and RF Smart. We also expect to face additional competition as other established and emerging companies enter the market for logistics technology solutions and new products and technologies are introduced and as we expand to new businesses. In addition, current and potential competitors may make strategic acquisitions or establish co-operative relationships among themselves or with third parties, thereby increasing the ability of their products to address the needs of our prospective customers.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We believe the principal competitive factors affecting the market for our solutions include vendor and product reputation; expertise and experience in implementing products in the customer&#39;s industry sector; product architecture, functionality and features; cost of ownership; ease and speed of implementation; customer support; product quality, price and performance; and product attributes such as flexibility, scalability, compatibility, functionality and ease of use. To be successful in the future, we believe we must continue to respond promptly and effectively to technological change and competitors&#39; innovations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">4.8 </b></font><b style="font-weight:bold;">Intellectual Property and Other Proprietary Rights</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We believe our success depends significantly on our proprietary technology. Through our internal research and development and our acquisitions we have continued to enhance the breadth of our intellectual property portfolio. We continue to rely primarily on a combination of patent, copyright, trademark and trade secret laws, license agreements, non-disclosure agreements and other contractual provisions to</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">28</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">establish, maintain and protect our proprietary rights in our products and technology. Some registered forms of protection, such as patents, copyright and trademark registrations, have a limited period of protection determined by the applicable law governing the registration. Other contractual forms of protection, such as license and non-disclosure agreements, have a limited contractual period of protection. The source codes and routing algorithms for our applications and technology are protected both as trade secrets and as unregistered copyrighted works with indefinite periods of protection. We have an extensive portfolio of patents, both over technologies we have developed internally and patents that have been acquired through our various acquisitions where patents were already held by the acquired companies or were pending. We continue to invest in the ongoing expansion of our patent portfolio. &#160; Each of these patents offer a limited period of protection determined by the applicable laws governing the patents. We have registered or applied for registration of certain trademarks and service marks with limited periods of protection and will continue to evaluate the registration of additional trademarks and service marks as appropriate.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We also utilize certain other software technologies, such as geographic data, shipping rate data, shipping mile data, sailing schedule data and global tariff and duty data, translation applications and business intelligence applications that we license from third parties, generally on a non-exclusive basis, including software that is integrated with internally developed software and used in our products to perform key functions. These third-party licenses generally require the payment of royalties based on sales of the product in which the technology is used.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Our network customers may use electronic logistics information generated by the customer, or by third parties on behalf of the customer, in connection with the customer<font style="font-family:'Verdana';">&#8217;</font>s use of our network services. Our customers are responsible for procuring and paying for the generation of such electronic logistics information and the right to use such electronic logistics information in connection with our network services.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;">Many of our data content solutions rely on data being available to us from various public sources. This data is available on a non-exclusive basis and generally available without the payment of fees except in certain cases where we may choose to obtain the data through third party data providers who may have pre-processed or aggregated the data in a manner that is more efficient or effective for our purposes. This data is similarly available to other parties and may allow other parties to develop competitive offerings. Our ability to maintain our market position is dependent upon our continued innovation in the ability to organize the data and provision of tools that facilitate the use of the data while continuing to expand and enhance the data.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">4.9</b></font><b style="font-weight:bold;">Contracts</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">(a)</font></font><u style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Customer Contracts</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We provide our GLN services and access to our data content services to our customers primarily by way of written subscription agreement. The subscription agreement sets out the applicable terms and restrictions on use of the service, the length of time the customer can use the service, and the applicable fees to be paid by the customer. Typically, these subscription agreements renew at a customer<font style="font-family:'Verdana';">&#8217;</font>s option and, in some cases, are subject to earlier termination by the customer on appropriate notice.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We license our software products to our customers primarily by way of written license agreements. The license agreements specify the applicable terms and restrictions on use of the software, the terms and conditions of any enrolment by the customer in our software maintenance program, and the applicable fees to be paid by the customer.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">29</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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<font style="font-family:'Verdana';">&#8217;</font>s option, and there are generally no mandatory payment obligations or obligations to license additional software or subscribe for additional services.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">If our customers terminate their subscription agreements, fail to renew their service contracts, fail to purchase or license additional services or products, or consolidate contracts with acquired companies, then our revenues could decrease and our operating results could be materially adversely affected. Factors influencing such contract terminations and non-renewals 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 replace ours, changes in our customers<font style="font-family:'Verdana';">&#8217;</font> business or in regulation impacting our customers<font style="font-family:'Verdana';">&#8217;</font> 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 revenues losses. Our business may also be materially adversely affected by market trends impacting our customer base, such as consolidation activity.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">(b)</font></font><u style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Outsourcing Contracts</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We deliver some of our GLN services over our proprietary networks, which are hosted by commercial public cloud and co-location providers such as, Microsoft, Amazon, Equinix, InterXion and CenturyLink. These hosting and co-location contracts, on which we are substantially dependent as they relate to the delivery of our network services, typically contemplate services to be provided for a term at a defined service level, with applicable rights of termination and renewal. We typically pay monthly fees under these contracts, some of which are based on the volume of network activity flowing through the hosting provider. If any of these contracts were terminated without our consent, we could incur substantial costs in migrating to an alternate hosting provider. In such an event, the costs and related management effort could materially adversely affect our operating results and the services that we provide to our customers.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">4.10 </b></font><b style="font-weight:bold;">Employees</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">As at January 31, 2022, the Company employed 1,860 employees including 1,813 full-time staff. Of the 1,813 full-time staff, 506 of the individuals were engaged in customer service roles (which includes customer support, activations and implementation services), 613 were in research and development roles, 227 were engaged in sales and marketing roles, 281 in network and product support roles and 186 were in general administration roles. Geographically, 1,005 employees were located in North America, 553 were located in Europe, 82 were located in the Asia Pacific region and 173 were located in South America.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">4.11 </b></font><b style="font-weight:bold;">Risks Associated with Foreign Sales and Exchange Rate Fluctuations</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">In fiscal 2022, sales outside of the Americas accounted for approximately 34% of our total revenues. Our international revenues are subject to risks associated with foreign sales, including longer collection times from foreign customers, difficulty in repatriating cash from foreign jurisdictions, unexpected changes in legal and regulatory requirements, export restrictions, changes in tariffs, exchange rates and other trade barriers, political and economic instability, difficulties in accounts receivable collection, difficulties in management of distributors or representatives, difficulties in staffing and managing foreign operations, difficulties in protecting our intellectual property, seasonality of sales, language issues and potentially adverse tax consequences. There can be no assurance that any of these factors will not have a material adverse effect on our business, results of operations and financial condition.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">During fiscal 2022, 63% of our revenues were denominated in US dollars, and historically the majority of our revenues have been denominated in US dollars. However, a significant portion of our expenses, including the wages of our non-US employees and obligations under certain key supply agreements, have</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">30</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">been denominated in Canadian dollars, euros and other foreign currencies. Therefore, changes in the value of the US dollar as compared to the Canadian dollar, the euro, British pound sterling 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">4.12 </b></font><b style="font-weight:bold;">Risks Associated with Cyclical or Seasonal Aspects of Business</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 and global health-pandemic events that impact shipping in particular geographies and amendments to international trade agreements. &#160;In particular, the uncertainties arising from the current war in Ukraine and the Pandemic could adversely impact global shipment volumes in all modes of transportation in fiscal 2023 and potentially beyond. 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. Declines in shipment volumes in the US or internationally likely would have a material adverse effect on our business.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">4.13</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">Reorganizations</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">In 2022, 2021 and 2020, we completed various integration and reorganization activities in connection with our acquisitions of NetCHB, GreenMile, QuestaWeb, Portrix, ShipTrack, Kontainers, Peoplevox, StepCom, BestTransport, Core and Visual Compliance including merging or consolidating various legal entities and operations, eliminating redundant management positions and canceling certain ongoing operating contracts.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">In May 2020, we announced that we were undertaking a restructuring of our overall global operations to reduce costs and strengthen our financial position in light of uncertainty at that time arising from the emergence of the Pandemic. The restructuring included the reduction of our global workforce by approximately 5% and the closure of several office facilities. We incurred $2.3 million in restructuring charges in fiscal 2021 related to the restructuring and the restructuring plan was substantially completed within fiscal 2021.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">4.14 </b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">Material Contracts</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The Company previously determined that the Credit Agreement constituted a <font style="font-family:'Verdana';">&#8220;</font>material contract<font style="font-family:'Verdana';">&#8221;</font> of the Company and filed a copy of the agreement on SEDAR at www.sedar.com. On December 16, 2021, the Company entered into the Amending Agreement. &#160;A copy of the Amending Agreement has also been filed on SEDAR at www.sedar.com. &#160;Particulars of the Amended Credit Agreement are disclosed in <font style="font-family:'Verdana';">&#8220;</font>Item 3 - General Developments of the Business <font style="font-family:'Verdana';">&#8211;</font> 3.2 History and General Development <font style="font-family:'Verdana';">&#8211;</font> Fiscal 2022 and Part of Fiscal 2023 through to April 14th, 2022<font style="font-family:'Verdana';">&#8221;</font> of this AIF. Other than such agreement, as amended, as of January 31, 2022, the Company had not otherwise entered into any material contracts, other than contracts entered into in the ordinary course of business, within the past year, or entered into before the most recently completed fiscal year that are still in effect.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">4.15</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">Code of Business Conduct and Ethics</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Our Board of Directors has adopted our Code of Business Conduct and Ethics (<font style="font-family:'Verdana';">&#8220;</font>the Code<font style="font-family:'Verdana';">&#8221;</font>) applicable to our directors, officers and employees. The Code is reviewed on a regular basis by our Board of Directors and may be updated from time to time. The most recent version of the Code is available on our website</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">31</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">at http://www.descartes.com and has been filed on and is accessible through the SEDAR website at http://www.sedar.com. The Code sets out in detail the core values and principles by which the Company is governed and addresses a number of topics in areas of environmental, social and corporate governance such as: honest and ethical conduct; conflicts of interest; compliance with applicable laws and our policies and procedures; public disclosure and books and records; use of corporate assets and opportunities; confidentiality of corporate information; reporting responsibilities and procedures; health and safety; anti-corruption; and non-retaliation.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;text-align:justify;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;"><b style="font-weight:bold;">ITEM 5 </b><font style="display:inline-block;width:109pt;"></font><b style="font-weight:bold;">RISK FACTORS</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Reference is made to the section entitled <font style="font-family:'Verdana';">&#8220;</font>Certain Factors That May Affect Future Results<font style="font-family:'Verdana';">&#8221;</font> in the <font style="font-family:'Verdana';">&#8220;</font>Management<font style="font-family:'Verdana';">&#8217;</font>s Discussion and Analysis of Financial Condition and Results of Operations<font style="font-family:'Verdana';">&#8221;</font> contained in our 2022 Annual Report for the year ended January 31, 2022, made available to all of our shareholders and filed with various securities regulators, which section is incorporated herein by reference. This information is available through the EDGAR website at http://www.sec.gov or through the SEDAR website at http://www.sedar.com.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">War in Ukraine</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We do not have any significant operations, customers, supplier relationships or employee relationships in either Ukraine or Russia. We do utilize the services of a very small number of technology development contractor resources based in Ukraine who have been impacted and/or displaced by the fighting in the region, however, those contractors have largely continued to provide services to the extent they are able and there has not been any discernable impact to the areas of our business where those contractors are utilized. More broadly, the war in Ukraine is likely to have an impact on normal business operations of companies in many parts of Eastern Europe abutting Ukraine as those countries deal with the impacts of the war and the refugee influx as a result of the war. &#160;This disruption could impact customers of Descartes who do business in that part of the world and may, in turn, impact on the demand from those customers for the products and services of Descartes, for example, if distribution and transportation networks are disrupted or face a decline in volumes. &#160; In addition, the impacts in Eastern Europe could also have an impact on our personnel who are located in those countries.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The United States State Department has issued a warning that one of the potential escalations that may result in connection with the war in Ukraine and in response to the increased sanctions announced by many countries against Russia, could be an increased risk of cyber-security attacks to the networks and operations of companies operating from countries that have participated in sanctions against Russia. &#160;We take that concern very seriously and have increased our own efforts to monitor our networks and information technology infrastructure for any signs of such attacks. &#160;Any such attack, if successful, could have a material impact on ability to continue to deliver our products and services to our customers. &#160; In addition, if such an attack was successful as against any one or more of our customers, it could impact the quantity of transactions and/or processing that we may handle on behalf of such customers and the resulting revenue therefrom.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">As a result of the war in Ukraine, we have recently observed sharp increases in fuel costs. &#160;It is uncertain if those increases will prove to be temporary or long-standing. &#160; These increases will necessarily impact on the costs of many of customers in the operation of their businesses, in particular, in the area of fuel costs for trucks, airplanes and ocean freighters. &#160; &#160; Those increased costs may impact the ability of some of our customers to operate and/or may impact on the demand that the customers of those customers may have for those services if those increased costs result in higher prices for various transportation and logistics services.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">COVID-19 Global Pandemic</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">As of the date of this AIF, it is not clear what ongoing impact there will be to global economic activity and the business of Descartes and our customers as a result of the continuing, albeit potentially waning, Pandemic. 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, scope and potential re-implementation of such restrictions on a geography-by-geography</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">32</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">basis. As of the date of this AIF, and consistent with the comments we have made in our MD&amp;A from recent quarters, we continue to monitor this situation closely for any observable impacts on our business.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We believe 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 we have noted previously in other publicly filed documents including our last AIF, 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 <font style="font-family:'Verdana';">&#8220;</font>essential service<font style="font-family:'Verdana';">&#8221;</font> 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We expect the significance of the Pandemic, including the extent of its effect on our financial condition and results of operations, to be dictated by, among other things, its duration, the success of efforts to contain it and the impact of actions taken 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 or contributed to by the Pandemic could have a further adverse impact on our financial condition and operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Catastrophic Events, Natural Disasters, Severe Weather and Disease</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Our business may be negatively impacted to varying degrees by a number of events which are beyond our control, including energy blackouts, pandemics (or other public health crises), terrorist attacks, acts of war, earthquakes, hurricanes, tornados, fires, floods, ice storms or other natural or manmade catastrophes. While we engage in emergency preparedness, including business continuity planning, to mitigate risks, 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 our operations and ability to carry on business 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, including or in addition to the current Pandemic, or fear of any of the foregoing, could adversely impact us and our investments. In addition, liquidity and volatility, credit availability and market and financial conditions generally could change at any time as a result. 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:144pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;padding-bottom:1pt;padding-top:1pt;text-align:justify;border-bottom:1px solid #000000;border-top:1px solid #000000;"><b style="font-weight:bold;">ITEM 6 </b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;padding-bottom:1pt;padding-top:1pt;text-align:justify;border-bottom:1px solid #000000;border-top:1px solid #000000;"><b style="font-weight:bold;">MARKET FOR SECURITIES AND RELATED SECURITYHOLDER MATTERS</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">6.1</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">Common Shares</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We are authorized to issue an unlimited number of common shares for unlimited consideration. The common shares are not redeemable or convertible. Each common share carries the right to receive notice of and one vote at a meeting of shareholders; the right to participate in any distribution of our assets on liquidation, dissolution or winding up; and the right to receive dividends if, as and when declared by the Board of Directors. As at April 14th, 2022, there were 84,781,562 common shares outstanding. The common shares are listed on the TSX under the symbol <font style="font-family:'Verdana';">&#8220;</font>DSG<font style="font-family:'Verdana';">&#8221;</font> and listed on NASDAQ under the symbol <font style="font-family:'Verdana';">&#8220;</font>DSGX<font style="font-family:'Verdana';">&#8221;</font>.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">6.2</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">Transfer Agent and Registrar</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The register of transfers of common shares is located in the offices of our stock transfer agent: Computershare Investor Services Inc., 100 University Avenue, Toronto, Ontario, Canada, M5J 2Y1.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">33</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">6.3</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">Dividend Policy</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We have not paid any dividends on our common shares to date. We may consider paying dividends on our common shares in the future when operational circumstances permit, having regard to, among other things, our earnings, cash flow and financial requirements as well as relevant legal and business considerations. We are prohibited by the Credit Facility from making a distribution (which includes a dividend) when there is an uncured event of default pursuant to the Credit Facility. At present there is no such event of default.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">6.4</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">Market for Common Shares</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Please see the following table that identifies the marketplaces on which our common shares trade, as well as the fiscal 2022 monthly price ranges and volume traded on each exchange:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><table style="border-collapse:collapse;font-size:16pt;height:max-content;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:24.72%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;width:24.39%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;width:14.6%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;width:21.03%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;width:15.24%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr style="height:20.65pt;"><td style="vertical-align:top;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td colspan="2" style="vertical-align:top;width:39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Common Shares - TSX</b></p></td><td colspan="2" style="vertical-align:top;width:36.27%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Common Shares </b><b style="font-family:'Verdana';font-weight:bold;">&#8211;</b><b style="font-weight:bold;"> NASDAQ</b></p></td></tr><tr style="height:30.7pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Month</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Price Range (CAD$)</b></p></td><td style="vertical-align:bottom;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Volume</b></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Price Range (US$)</b></p></td><td style="vertical-align:bottom;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Volume</b></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">February 2021</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$71.53 <font style="font-family:'Verdana';">&#8211;</font> 82.28</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 2,145,686 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$56.92 <font style="font-family:'Verdana';">&#8211;</font> 64.82</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 1,997,942 </font></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">March 2021</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$72.43 <font style="font-family:'Verdana';">&#8211;</font> 80.09</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 2,981,454 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$57.07 <font style="font-family:'Verdana';">&#8211;</font> 64.36</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 2,449,312 </font></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">April 2021</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$76.79 <font style="font-family:'Verdana';">&#8211;</font> 83.62</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 1,832,037 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$60.96 <font style="font-family:'Verdana';">&#8211;</font> 66.71</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 1,677,789 </font></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">May 2021</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$68.61 <font style="font-family:'Verdana';">&#8211;</font> 79.44</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 2,625,411 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$56.78 <font style="font-family:'Verdana';">&#8211;</font> 64.63</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 1,930,095 </font></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">June 2021</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$69.91 <font style="font-family:'Verdana';">&#8211;</font> 87.42</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 3,473,954 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$58.00 <font style="font-family:'Verdana';">&#8211;</font> 70.52</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 2,058,713 </font></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">July 2021</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$85.38 <font style="font-family:'Verdana';">&#8211;</font> 90.90</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 1,389,139 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$67.57 <font style="font-family:'Verdana';">&#8211;</font> 72.88</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 1,172,105 </font></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">August 2021</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$89.55 <font style="font-family:'Verdana';">&#8211;</font> 100.24</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 1,394,988 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$71.51 <font style="font-family:'Verdana';">&#8211;</font> 79.44</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 1,090,363 </font></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">September 2021</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$98.99 <font style="font-family:'Verdana';">&#8211;</font> 111.00</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 3,097,894 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$78.43 <font style="font-family:'Verdana';">&#8211;</font> 87.46</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 2,515,972 </font></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">October 2021</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$97.35 <font style="font-family:'Verdana';">&#8211;</font> 105.03</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 2,071,791 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$77.31 <font style="font-family:'Verdana';">&#8211;</font> 85.00</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 1,548,422 </font></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">November 2021</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$101.07 <font style="font-family:'Verdana';">&#8211;</font> 115.29</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 2,445,916 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$80.11 <font style="font-family:'Verdana';">&#8211;</font> 91.39</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 1,952,514 </font></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">December 2021</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$95.61 <font style="font-family:'Verdana';">&#8211;</font> 106.57</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 3,693,994 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$74.35 <font style="font-family:'Verdana';">&#8211;</font> 83.81</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 3,961,789 </font></p></td></tr><tr style="height:20.65pt;"><td style="vertical-align:bottom;width:24.72%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">January 2022</b></p></td><td style="vertical-align:bottom;width:24.39%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$82.36 <font style="font-family:'Verdana';">&#8211;</font> 102.62</p></td><td style="vertical-align:top;width:14.6%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 3,957,805 </font></p></td><td style="vertical-align:bottom;width:21.03%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">$64.92 <font style="font-family:'Verdana';">&#8211;</font> 82.87</p></td><td style="vertical-align:top;width:15.24%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt 5.15pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="white-space:pre-wrap;"> 4,531,344 </font></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">As of the date of this AIF, the most recent closing price for trading of our common shares was CAD$ 80.50 on the TSX and US$ 64.13 on the NASDAQ.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">6.5</b></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:1pt;margin-top:0pt;text-align:justify;"><b style="font-weight:bold;">Shareholder Rights Plan</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On November 29, 2004, our Board of Directors approved a shareholder rights plan (the <font style="font-family:'Verdana';">&#8220;</font>Rights Plan<font style="font-family:'Verdana';">&#8221;</font>) which was approved by the TSX and was approved by our shareholders on May 18, 2005. The primary objectives of the Rights Plan are to ensure that to the extent possible, in the context of an unsolicited take-over bid for of the common shares of our Company, that all shareholders of the Company are treated fairly and to ensure that the Board of Directors is provided with sufficient time to evaluate any such bid and to assess alternatives to maximize shareholder value that may include, without limitation, the continued implementation of the Company<font style="font-family:'Verdana';">&#8217;</font>s long-term strategic plans, as those may be modified by the Company from time to time. The Rights Plan is specifically designed to ensure that the following occurs following an unsolicited take-over bid: (i) there is adequate time for competing bids to emerge; (ii) shareholders have an equal opportunity to participate in such a bid; (iii) shareholders are provided with</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">34</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">adequate time to properly assess the bid; and (iv) a reduction in the pressure to tender which may be encountered by a shareholder in the course of a bid. The Rights Plan creates a right that attaches to each present and subsequently issued common share. Until the separation time, which typically occurs at the time of an unsolicited take-over bid, whereby an offeror (including persons acting jointly or in concert with the offeror) acquires or attempts to acquire 20% or more of our common shares, the rights are not separable from the common shares, are not exercisable and no separate rights certificates are issued. Each right entitles the holder, other than the 20% offeror, from and after the separation time and before the expiration time, to acquire one of our common shares at 50% of the market price at the time of exercise. The continuation of the Rights Plan must be approved by shareholders every three years. On each of June 2, 2011, May 29, 2014, June 1, 2017 and May 28, 2020, our shareholders approved certain amendments to the Rights Plan and approved the continued effectiveness of the Rights Plan. The Rights Plan will expire at the termination of our annual meeting of the shareholders to be held in the 2023 calendar year, unless its continued existence is approved by the shareholders before such expiration.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;text-align:justify;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt 0pt 1pt 0pt;"><b style="font-weight:bold;">ITEM 7 </b><font style="display:inline-block;width:109pt;"></font><b style="font-weight:bold;">DIRECTORS AND EXECUTIVE OFFICERS</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">7.1 </b></font><b style="font-weight:bold;">Summary Information</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The following table sets forth the name, location of residence and office held by each of our executive officers and directors as at April 14th, 2022. Each director is elected at the annual meeting of shareholders or appointed pursuant to the provisions of our by-laws and applicable laws to serve until the next annual meeting or until a successor is elected or appointed, subject to earlier resignation by the director.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><th style="font-weight:normal;text-align:left;vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></th></tr><tr><th style="font-weight:normal;text-align:left;vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 3pt 0pt;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Name and Location of Residence</b></p></th><th style="font-weight:normal;text-align:left;vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 3pt 0pt;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Office Held</b></p></th></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Eric A. Demirian</b><sup style="font-size:7.5pt;vertical-align:top;">(1)(3)</sup><sup style="font-size:7.5pt;vertical-align:top;"><br></sup>Toronto, Ontario, Canada</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Chair of the Board</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Deepak Chopra</b><sup style="font-size:7.5pt;vertical-align:top;">(1)(4)</sup><br>Toronto, Ontario, Canada</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Director</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Deborah Close</b><sup style="font-size:7.5pt;vertical-align:top;">(2)(4)</sup><br>Calgary, Alberta Canada</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Director</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Dennis Maple </b><sup style="font-size:7.5pt;vertical-align:top;">(2)(4)</sup><br>Malvern, Pennsylvania, USA</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Director</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Chris Muntwyler </b><sup style="font-size:7.5pt;vertical-align:top;">(2)(3)</sup><br>Baech, Switzerland</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Director</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Jane O</b><b style="font-family:'Verdana';font-weight:bold;">&#8217;</b><b style="font-weight:bold;">Hagan</b><sup style="font-size:7.5pt;vertical-align:top;">(2)(3)</sup><br>Calgary, Alberta, Canada</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Director </p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">John J. Walker</b><sup style="font-size:7.5pt;vertical-align:top;">(1)(3)</sup><sup style="font-size:7.5pt;vertical-align:top;"><br></sup>Wyckoff, New Jersey, USA</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Director</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Edward J. Ryan</b><br>Fort Washington, Pennsylvania, USA</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Director and Chief Executive Officer</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">J. Scott Pagan</b><br>Cambridge, Ontario, Canada</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">President and Chief Operating Officer </p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Allan Brett</b><br>Kleinburg, Ontario, Canada</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Chief Financial Officer</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Raimond Diederik</b><br>Waterloo, Ontario, Canada</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Executive Vice President, Information Services</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Ed Gardner</b><br>Toronto, Ontario, Canada</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Executive Vice President, Corporate Development</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Chris Jones</b><br>Boston, Massachusetts, USA</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Executive Vice President, Marketing and Services</p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">35</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><div align="left"><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:48.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Name and Location of Residence</b></p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Office Held</b></p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Robert Parker </b><br>Halifax, Nova Scotia, Canada</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Executive Vice President, Customer Support and Client Services</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Andrew Roszko</b><br>Montreal, Quebec, Canada</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Executive Vice President, Commercial Operations</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Michael Verhoeve</b><br>Waterloo, Ontario, Canada</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Executive Vice President, Legal, General Counsel and Corporate Secretary</p></td></tr><tr><td style="vertical-align:top;width:48.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Kenneth Wood</b><br>Fort Myers, Florida, USA</p></td><td style="vertical-align:top;width:51.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">Executive Vice President, Product Management</p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 0pt 36pt;">Notes:</p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">(1)</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Member of the Audit Committee.</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">(2)</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Member of the Compensation Committee.</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">(3)</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Member of the Corporate Governance Committee.</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">(4)</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Member of the Nominating Committee</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:36pt;text-indent:-36pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Information about each of our directors and executive officers, including his or her respective principal occupation during at least the five years preceding January 31, 2022, is as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 3pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Eric A. Demirian </font>has been a member of our Board of Directors since June 2011. Mr. Demirian was appointed Chairman of the Board in May 2014 and previously acted as Chair of the Corporation<font style="font-family:'Verdana';">&#8217;</font>s audit committee. Mr. Demirian is a Chartered Professional Accountant, Certified General Accountant and a Chartered Accountant. Since 2003, Mr. Demirian has served as president of Parklea Capital, Inc. (<font style="font-family:'Verdana';">&#8220;</font><b style="font-weight:bold;">Parklea</b><font style="font-family:'Verdana';">&#8221;</font>), a boutique financial and strategy advisory firm providing services to small- and mid-market public and private companies, and President of Demicap Inc., a private investment firm. Prior to Mr. Demirian<font style="font-family:'Verdana';">&#8217;</font>s position at Parklea, he held the position of Executive Vice President of Group Telecom, Inc. from 2000 to 2003. From 1983 to 2000, Mr. Demirian was with PricewaterhouseCoopers LLP (<font style="font-family:'Verdana';">&#8220;</font><b style="font-weight:bold;">PwC</b><font style="font-family:'Verdana';">&#8221;</font>) where he was a partner and head of the Information and Communications Practice. Mr. Demirian serves on the boards of Enghouse Systems Ltd. (TSX:ENGH) and Imax Corporation (NYSE:IMAX). Mr. Demirian is a former director and chair of the audit committees of a number of public companies. Mr. Demirian holds a Bachelor of Business Management degree from Ryerson University.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Deepak Chopra </font>joined our Board of Directors on May 28, 2020. &#160;Mr.<font style="font-family:'Verdana';">&#160;</font>Chopra most recently served as President and Chief Executive Officer of Canada Post Corporation from February 2011 to March 2018. Mr. Chopra has more than 30 years of global experience in the financial services, technology, transportation, logistics &amp; supply-chain industries. Prior to that, for more than 20 years, he worked for Pitney Bowes Inc., a NYSE-traded technology company known for postage meters, mail automation and location intelligence services. He served as President of Pitney Bowes Canada and Latin America from 2006 to 2010. He held a number of increasingly senior executive roles internationally, including President of its new Asia Pacific and Middle East region from 2001 to 2006 and Chief Financial Officer for Europe, Africa &amp; Middle East (EAME) region from 1998-2001. He has previously served on the boards of Canada Post Corporation, Purolator Inc., SCI Group, the Canada Post Community Foundation, Conference Board of Canada and the Toronto Region Board of Trade. He currently sits on the board of Celestica, Inc. (TSX:CLS), The North West Company (TSX:NWC) and Sun Life Financial (TSX:SLF). Mr. Chopra is a Fellow of the Institute of Chartered Professional Accountants of Canada and has a Bachelor<font style="font-family:'Verdana';">&#8217;</font>s degree in Commerce (Honours) and a Master<font style="font-family:'Verdana';">&#8217;</font>s Degree in Business Management (PGDBM).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Deborah Close </font>has been a member of our Board of Directors since May 2015. Ms. Close held the position of President of the Production Services division of Tervita Corporation from 2010 until 2016. Tervita Production Services, now High Artic Energy Services (TSX:HWO), delivers engineering and field-based services to the oil and gas industry. From 2002 to 2010, Ms. Close was the Executive Vice President of DO2 Technologies (now Enverus), a software company providing electronic invoicing to the oil and gas industry. During Ms. Close<font style="font-family:'Verdana';">&#8217;</font>s tenure, DO2 grew from a start-up to the leading provider of e-invoicing to oil</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">36</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">and gas companies and their suppliers. Prior to DO2, Ms. Close served in a number of Regional Vice President roles in Halliburton Corporation<font style="font-family:'Verdana';">&#8217;</font>s software division, Landmark Graphics.<font style="font-family:'Verdana';">&#160;</font> She held executive roles in several of Landmark<font style="font-family:'Verdana';">&#8217;</font>s largest regions, including VP of Strategic Accounts, Regional VP of North America and Regional VP of Europe and the Former Soviet Union. During Ms. Close<font style="font-family:'Verdana';">&#8217;</font>s 12 years at Halliburton, she worked in Canada, the US and Europe. Ms. Close also currently serves on the board of directors of Inter Pipeline Ltd, a privately held company but a reporting issuer for certain debt securities.<font style="font-family:'Verdana';">&#160;&#160;</font> Ms. Close holds a Bachelor of Arts from the University of Calgary and the ICD.D designation from the Institute of Corporate Directors and Rotman School of Management.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 3pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Dennis Maple</font> was elected to our Board of Directors on June 1, 2017. Mr. Maple is currently President and CEO of Goddard Systems, Inc., which oversees the operation of more than 500 premium early childhood education schools across the United States. Between January 2014 and August 2019, Mr. Maple was the President of First Student, Inc., a subsidiary of United Kingdom based publicly-traded First Group plc. First Group plc is the leading transport operator in the United Kingdom and North America, providing solutions encompassing student bus transportation and public rail. Mr. Maple<font style="font-family:'Verdana';">&#8217;</font>s portfolio at First Student included 57,000 employees focused on providing more than 5.5 million passenger journeys daily across the US and Canada. Prior to serving as President of First Group, from 2006 to January 2014, Mr. Maple was President of Aramark Education where he had responsibility for more than 15,000 employees serving more than 4,500 US schools with food preparation, facilities management and related services. Prior to his role as President of Aramark Education, from 2003 to 2006, Mr. Maple held senior executive management positions at Aramark. Prior to serving in an executive role at Aramark, from 1994 to 2003, Mr. Maple served as an Area Vice President at Coors Brewing and in several other management roles. Prior to 1994, Mr. Maple held roles at Kraft-General Foods, PepsiCola and The Quaker Oats Company. Mr. Maple has a Bachelor of Science, Business Administration, Accounting from the University of Tennessee. Mr. Maple has served on numerous charitable and community-based boards and has been an active participant in organizations supporting primary and secondary schools and communities across North America.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 3pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Chris Muntwyler </font>joined our Board of Directors on May 28, 2020. Mr. Muntwyler has significant international experience in the transportation, logistics and technology sectors. &#160;Having previously held various senior executive positions at SwissAir and the positions of Chief Executive of DHL Express (UK) Limited and Managing Director (Switzerland, Germany and Central Europe) at DHL Express, he is now a management consultant through his business, Conlogic AG, specializing in strategic development, leadership guidance and customer orientation and process automation. &#160;Mr. Muntwyler spent 10 years in the DHL Express organization following a 27 year career with SwissAir. &#160;Mr. Muntwyler currently serves as a non-executive director on the board of Austrian Post (Vienna:POST). Mr. Muntwyler previously served as a non-executive director on the board of National Express Group PLC in the United Kingdom (LSE:NEX) from 2011 to 2020 and as a director of Panalpina World Transport (Holding) Ltd. from 2010 to 2018. &#160;During the period of 2007 and 2008, Mr. Muntywler served as a member of the President<font style="font-family:'Verdana';">&#8217;</font>s Committee on the United Kingdom<font style="font-family:'Verdana';">&#8217;</font>s Confederation of British Industry. During his professional career, Mr. Muntwyler has lived and worked in Switzerland, Sweden, the United States, Germany and the United Kingdom.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Jane O</font><font style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#8217;</font><font style="font-style:italic;font-weight:bold;">Hagan </font>has been a member of our Board of Directors since May 2014. Ms. O<font style="font-family:'Verdana';">&#8217;</font>Hagan is a corporate director with over 20 years experience in the transportation and logistics sectors. From 2010 until 2014, Ms. O<font style="font-family:'Verdana';">&#8217;</font>Hagan was the Executive Vice President and Chief Marketing Officer of Canadian Pacific Railway Limited. Ms. O<font style="font-family:'Verdana';">&#8217;</font>Hagan also held various roles at CP including Senior Vice President, Strategy and Yield, Vice President, Strategy and External Affairs and Assistant Vice President, Strategy and Research. Ms. O<font style="font-family:'Verdana';">&#8217;</font>Hagan also serves as a director of USD Partners GP LCC, the general partner of USD Partners LP (NYSE:USDP), an acquirer, developer and operator of energy-related rail terminals and other complementary mid-stream assets, where Ms. O<font style="font-family:'Verdana';">&#8217;</font>Hagan serves as the Chair of USD Partners GP LLC board<font style="font-family:'Verdana';">&#8217;</font>s conflicts committee and as a member of the audit committee. From 2018 until its acquisition in 2021, Ms. O<font style="font-family:'Verdana';">&#8217;</font>Hagan was a member of the board of Pinnacle Renewable Holdings (TSX:PL), a supplier of industrial wood pellets based in Richmond, BC where she also served as a member of the audit and risk committees. Ms. O<font style="font-family:'Verdana';">&#8217;</font>Hagan has a Bachelor of Arts (Hons.) and a Bachelor of Administrative and Commercial Studies from the University of Western Ontario (London, Ontario, Canada) and has completed graduate studies in Program and Policy Studies from the University of Western Ontario. In December 2012, Ms. O<font style="font-family:'Verdana';">&#8217;</font>Hagan was named one of Canada<font style="font-family:'Verdana';">&#8217;</font>s Top 100 Most Powerful Women by the Women<font style="font-family:'Verdana';">&#8217;</font>s Executive Network. Ms. O<font style="font-family:'Verdana';">&#8217;</font>Hagan</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">37</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">is also a holder of the ICD.D designation from the Institute of Corporate Directors, which she achieved in June 2016 and earned the CERT Certificate in Cyber Risk Oversight issued by Carnegie Mellon University and the National Association of Corporate Directors in February 2018.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 3pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">John J. Walker</font> has been a member of our Board of Directors since September 2011. Mr. Walker is a corporate director and a Certified Public Accountant and a Chartered Global Management Accountant with 37 years overall financial and executive management experience, including twenty-one years of experience as a Chief Financial Officer with both public and private companies. Mr. Walker served as Chief Financial Officer, and Senior Vice President of Bowne &amp; Company, a New York Stock Exchange-listed provider of services to help companies produce and manage their shareholder, investor and marketing &amp; business communications, from 2006 until its acquisition by R.R. Donnelley &amp; Sons in 2010. Prior to Bowne &amp; Company, from 1988 to 2006, Mr. Walker was an executive with Loews Cineplex Entertainment Corporation a motion picture theatre exhibition chain, including sixteen years as Chief Financial Officer. Prior thereto, Mr. Walker served for six years as Controller and Principal Accounting Officer of Corporate Property Investors, then one of the largest real estate investment trusts in the United States. Mr. Walker also served for six years as Treasurer and Assistant Corporate Controller of Princess Hotels International a company involved in the ownership and operation of luxury resort hotels, real estate and timesharing developments. Since October 2021 to the present, Mr. Walker is a member of the Board of Schultze Special Purpose Acquisition Corp. II (Nasdaq: SAMAU, SAMA, SAMAW) where he is Chair of the Audit Committee and also serves on the Nominating and Compensation Committees. &#160;Mr. Walker was a member of the Board of Schultze Special Purpose Acquisition Corp. I from June 2018 until December 2020 up to the completion of a <font style="font-family:'Verdana';">&#8220;</font>de-SPAC<font style="font-family:'Verdana';">&#8221;</font> business combination. Mr. Walker started his career in the New York office of then-Price Waterhouse. Mr. Walker is a member of the American Institute of Certified Public Accountants and the New York State Society of CPAs.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Edward J. Ryan</font> is our Chief Executive Officer and has been a member of our Board of Directors since May 2014. Mr. Ryan joined Descartes in February 2000 in connection with our acquisition of E-Transport Incorporated. Since then, Mr. Ryan has occupied various senior management positions within Descartes, with particular focus on our network and recurring business. Mr. Ryan was appointed General Manager, Global Logistics Network in June 2004 and then appointed Executive Vice President, Global Field Operations in July 2007. He was appointed Chief Commercial Officer in June 2011 and appointed Chief Executive Officer in November 2013.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">J. Scott Pagan</font> is our President and Chief Operating Officer. Mr. Pagan joined our legal department in May 2000. Mr. Pagan was appointed Corporate Secretary in May 2003, General Counsel &amp; Corporate Secretary in June 2004, and Executive Vice President, Corporate Development in July 2007. He was appointed Chief Corporate Officer in June 2011 and appointed President and Chief Operating Officer in November 2013. Prior to joining Descartes, Mr. Pagan was in private legal practice.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Allan Brett</font> is our Chief Financial Officer. Mr. Brett is a Chartered Professional Accountant and is an experienced public company executive, who served as Chief Financial Officer of Aastra Technologies Limited from 1996 through to its sale to Mitel Networks Corporation in 2014. Mr. Brett was appointed Chief Financial Officer of Descartes in May 2014.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Andrew Roszko </font>is our Executive Vice President, Commercial Operations. Mr. Roszko joined Descartes in November 2006 as part of the acquisition of CubeRoute, where he was a founder and held both engineering and operational leadership roles. Prior to CubeRoute, Mr. Roszko ran a consulting practice and, since joining Descartes, he has held progressively increasing senior sales leadership roles until his appointment to the role of Executive Vice President, Global Sales in 2019 and then promotion to the role of Executive Vice President, Commercial Operations with the assumption of responsibility for emerging markets and marketing.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Raimond Diederik</font> is our Executive Vice President, Information Services. Mr. Diederik joined Descartes in July 1998 in connection with our acquisition of Calixon N.V. Since then, Mr. Diederik has occupied various senior management positions within Descartes, with particular focus on our information technology infrastructure and technology development activities. Mr. Diederik was appointed SVP, Network</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">38</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Operations &amp; Information Technology in June 2006 and then appointed Executive Vice President, Information Services in September 2009.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Ed Gardner</font> is our Executive Vice President, Corporate Development. Mr. Gardner joined Descartes in 2003 where he first held a number of senior roles within our corporate finance organization. In his current role as Executive Vice President, Corporate Development, Mr. Gardner is responsible for the development and execution of our M&amp;A strategy.<font style="font-family:'Verdana';">&#160;</font> Mr. Gardner<font style="font-family:'Verdana';">&#8217;</font>s previous experience includes both practical logistics experience where he worked in a senior leadership position at a third-party logistics provider as well as deal execution and integration experience as part of Ernst &amp; Young<font style="font-family:'Verdana';">&#8217;</font>s Transaction Advisory Services practice in London, England.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Chris Jones </font>is our Executive Vice President, Marketing &amp; Services. Mr. Jones joined Descartes in May 2005 and served as Executive Vice President, Solutions &amp; Markets until his appointment to Executive Vice President, Solutions &amp; Services in September 2006. Mr. Jones was appointed Executive Vice President, Services in February 2011 and Executive Vice-President, Marketing &amp; Services in June 2011. From November 2003 until he joined Descartes, Mr. Jones was Senior Vice President in Aberdeen Group&#39;s Value Chain Research division where he was responsible for creating a market-leading supply chain and manufacturing research and advisory research practice. Prior to Aberdeen, from September 1998 to January 2003, Mr. Jones was Executive Vice President of Marketing and Corporate Development for SynQuest, Inc., a provider of supply chain planning solutions. Before joining SynQuest, from May 1994 to September 1998, Mr. Jones was Vice President and Research Director for Enterprise Resource Planning Solutions at the Gartner Group.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Robert Parker</font> is our Executive Vice President, Customer Support and Client Services. Mr. Parker joined Descartes in 2009 as part of the acquisition of Scancode where he had held the role of VP, Operations for 10 years. Mr. Parker leads Descartes<font style="font-family:'Verdana';">&#8217;</font> global customer support and client services organization and brings over 20 years of senior management and logistics consulting experience to Descartes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Michael Verhoeve </font>is our Executive Vice President, Legal, General Counsel and Corporate Secretary. Mr. Verhoeve was previously our Associate General Counsel from 1998 through to 2003, following which, from 2003 to 2014, he acted as General Counsel and Corporate Secretary at two other Canadian-based international publicly traded technology companies: ATS Automation Tooling Systems Inc. (TSX:ATA) and Sandvine Corporation (TSX: SVC). Mr. Verhoeve re-joined Descartes in May 2014 in his current role.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Kenneth Wood </font>is our Executive Vice President of Product Management. Mr. Wood joined Descartes in July 2001 in connection with our acquisition of Centricity. Mr. Wood provides leadership in defining our product strategy, developing roadmaps, and working with all aspects of product delivery. He brings deep domain expertise in supply chain management, transportation management, fleet management, mobile solutions and supply chain planning. Mr. Wood&#39;s previous experience included leadership roles in development, consulting and product management<font style="font-family:'Verdana';">&#160;</font>with leading supply chain software providers such as CAPS Logistics, i2 Technologies, and Centricity.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">To our knowledge, as at April 14th, 2022, our directors and executive officers as a group beneficially owned, or controlled or directed, directly or indirectly, 276,084 of our common shares, representing approximately 0.33% of the common shares then outstanding.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 1pt 0pt;"><font style="display:inline-block;text-align:left;text-indent:0pt;width:36pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">7.2 </b></font><b style="font-weight:bold;">Committees of the Board of Directors</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our Board of Directors currently has four committees: the Audit Committee; the Compensation Committee; the Corporate Governance Committee; and the Nominating Committee. The committees, their mandates and membership are discussed below.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Audit Committee</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The primary functions of the Audit Committee are to oversee the accounting and financial reporting practices of the Company and the audits of the Company&#39;s financial statements, including assisting the Board in fulfilling its responsibilities in reviewing: financial disclosures and internal controls over financial reporting; monitoring the system of internal control and overall enterprise risk management; monitoring the Company&#39;s compliance with Applicable Requirements (as defined in Descartes<font style="font-family:'Verdana';">&#8217;</font> Audit Committee</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">39</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">charter); overseeing internal audit functions; selecting the auditors for shareholder approval; reviewing the qualifications, independence and performance of the auditors; reviewing the qualifications, independence and performance of the Company&#39;s financial management; reviewing related party transactions involving the Company and its Board or executive management.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The Board of Directors has adopted an amended Audit Committee charter setting out the scope of the Audit Committee<font style="font-family:'Verdana';">&#8217;</font>s functions, responsibilities and membership requirements. A copy of that charter is attached as Appendix <font style="font-family:'Verdana';">&#8220;</font>A<font style="font-family:'Verdana';">&#8221;</font> to this AIF.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The Audit Committee is currently composed of three independent directors: John J. Walker (Chair), Deepak Chopra and Eric Demirian. The Board of Directors has determined that each of Mr. Walker, Mr. Chopra and Mr. Demirian is an <font style="font-family:'Verdana';">&#8220;</font>audit committee financial expert<font style="font-family:'Verdana';">&#8221;</font> as defined in paragraph 8(b) of General Instruction B to Form 40-F promulgated by the Securities and Exchange Commission and that each member of the Audit Committee is financially sophisticated for the purposes of NASDAQ Rule 5605(c)(2)(A).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The following sets out the education and experience of the members of the Audit Committee, each of whom is independent and financially literate:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 36pt;"><font style="font-style:italic;font-weight:bold;">John J. Walker</font> C.P.A., C.G.M.A., B.S. <font style="font-family:'Verdana';">&#8211;</font> Mr. Walker is a Certified Public Accountant and a Chartered Global Management Accountant with experience as a Chief Financial Officer with public companies, including Bowne &amp; Company, a New York Stock Exchange-listed company and Loews Cineplex Entertainment Corporation, a New York Stock Exchange-listed company and a Toronto Stock Exchange-listed company. Prior to Loews, Mr. Walker served as Controller of Corporate Property Investors and a financial executive at Princess Hotels International. Mr. Walker received his B.S. in Accounting from the University of Scranton. Mr. Walker started his career in the New York office of then Price Waterhouse. Mr. Walker is a member of the American Institute of Certified Public Accountants and the New York State Society of CPA<font style="font-family:'Verdana';">&#8217;</font>s.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 36pt;"><font style="font-style:italic;font-weight:bold;">Deepak Chopra </font>F.C.P.A., B.Comm, Masters in Business Management (PGDBM) <font style="font-family:'Verdana';">&#8211;</font> Mr. Chopra is a Fellow of the Chartered Professional Accountants of Canada. &#160;Mr.<font style="font-family:'Verdana';">&#160;</font>Chopra most recently served as President and Chief Executive Officer of Canada Post Corporation from February 2011 to March 2018. Mr. Chopra has more than 30 years of global experience in the financial services, technology, transportation, logistics &amp; supply-chain industries. Prior to that, for more than 20 years, he worked for Pitney Bowes Inc., a NYSE-traded technology company where Mr. Chopra held the role of Chief Financial Officer of various Pitney Bowes entities over a period of nine (9) years. He also served as President of Pitney Bowes Canada and Latin America from 2006 to 2010.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 36pt;"><font style="font-style:italic;font-weight:bold;">Eric A. Demirian </font>BBM., C.P.A., C.G.A, C.A.<font style="font-family:'Verdana';">&#8211;</font> Mr. Demirian is the Chair of the Corporation<font style="font-family:'Verdana';">&#8217;</font>s Board of Directors and was previously the Chair of the Corporation<font style="font-family:'Verdana';">&#8217;</font>s audit committee. &#160;Mr. Demirian is a Chartered Professional Accountant, Certified General Accountant and a Chartered Accountant. Mr. Demirian is a seasoned business executive with a unique blend of financial, operational and board governance experience. Since 2003, Mr. Demirian has served as president of Parklea Capital, Inc. (<font style="font-family:'Verdana';">&#8220;</font>Parklea<font style="font-family:'Verdana';">&#8221;</font>), a boutique financial and strategy advisory firm providing services to small- and mid-market public and private companies, and President of Demicap Inc., a private investment firm. Prior to Mr. Demirian<font style="font-family:'Verdana';">&#8217;</font>s position at Parklea, he held the position of Executive Vice President of Group Telecom, Inc. from 2000 to 2003. From 1983 to 2000, Mr. Demirian was with PricewaterhouseCoopers LLP (<font style="font-family:'Verdana';">&#8220;</font>PwC<font style="font-family:'Verdana';">&#8221;</font>) where he was a partner and head of the Information and Communications Practice. Mr. Demirian serves on the boards of Enghouse Systems Ltd. (TSX:ESL), and Imax Corporation (NYSE:IMAX). Mr. Demirian is a former director and chair of the audit committees of a number of public companies, including Menu Foods Income Fund (2005-2010) and Keystone North America Inc. (2007-2010). Mr. Demirian holds a Bachelor of Business Management degree from Ryerson University.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The Audit Committee has adopted specific policies and procedures for the engagement of non-audit services from our independent auditor. Those procedures are attached at Appendix <font style="font-family:'Verdana';">&#8220;</font>B<font style="font-family:'Verdana';">&#8221;</font> to this AIF.</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">40</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Compensation Committee</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The Compensation Committee is appointed by the Board of Directors to discharge the Board&#39;s duties and responsibilities relating to the compensation of the Company&#39;s Chief Executive Officer and senior management, as well as to review the human resource policies and practices that cover the Company&#39;s employees. The Compensation Committee is currently composed of four independent directors: Deborah Close (Chair), Dennis Maple, Chris Muntwyler and Jane O<font style="font-family:'Verdana';">&#8217;</font>Hagan.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Corporate Governance Committee</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The Corporate Governance Committee is primarily responsible for overseeing Descartes&#39; corporate governance policies and activities. The Corporate Governance Committee reviews and maintains the Board of Directors governing documents in compliance with the Code of Business Conduct and Ethics. The Corporate Governance Committee is currently composed of four independent directors: Jane O<font style="font-family:'Verdana';">&#8217;</font>Hagan (Chair), Eric Demirian, Chris Muntwyler and John Walker.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-style:italic;font-weight:bold;">Nominating Committee</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The primary function of the Nominating Committee is to assist the Board of Directors in identifying, recruiting and nominating suitable candidates to serve on the Board of Directors. The Nominating Committee is currently composed of four independent directors: Mr. Dennis Maple (Chair), Mr. Deepak Chopra and Deborah Close.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;text-align:justify;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;"><b style="font-weight:bold;">ITEM 8</b><font style="display:inline-block;width:111.77pt;"></font><b style="font-weight:bold;">EXTERNAL AUDITORS</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">For the fiscal year ended January 31, 2022, our external auditors were KPMG LLP, Independent Registered Public Accounting Firm. KPMG LLP has been our external auditors since April 16, 2015. KPMG LLP have confirmed that they are independent with respect to the Company with the meaning of the relevant rules and related interpretations prescribed by the relevant professional bodies in Canada and any applicable legislation or regulations and also that they are independent accountants with respect to the Company under all relevant US professional and regulatory standards.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The following table sets forth the fees we have incurred in using the services of KPMG LLP in respect of the applicable fiscal years noted (all amounts in the table are in US dollars <font style="font-family:'Verdana';">&#8211;</font> amounts that were billed in Canadian dollars are converted to US dollars at the applicable exchange rate on the last day of the applicable fiscal period):</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><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:19.5%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><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:15.75%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><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:20.27%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><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:13.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:top;width:15.67%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><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:15.08%;margin:0pt;padding:0pt 5.4pt 0pt 5.4pt;"><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:19.5%;border-bottom:1.0pt solid #000000;border-left:1.0pt solid #000000;border-right:1.0pt solid #000000;border-top:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Fiscal Year Ended</b></p></td><td style="vertical-align:top;width:15.75%;border-bottom:1.0pt solid #000000;border-right:1.0pt solid #000000;border-top:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Audit Fees</b></p></td><td style="vertical-align:top;width:20.27%;border-bottom:1.0pt solid #000000;border-right:1.0pt solid #000000;border-top:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Audit-Related Fees</b></p></td><td style="vertical-align:top;width:13.7%;border-bottom:1.0pt solid #000000;border-right:1px solid #000000;border-top:1.0pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Tax Fees</b></p></td><td style="vertical-align:top;width:15.67%;border-bottom:1.0pt solid #000000;border-left:1px solid #000000;border-right:1.0pt solid #000000;border-top:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">All Other Fees</b></p></td><td style="vertical-align:top;width:15.08%;border-bottom:1.0pt solid #000000;border-right:1.0pt solid #000000;border-top:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr style="height:22pt;"><td style="vertical-align:top;width:19.5%;border-bottom:1.0pt solid #000000;border-left:1.0pt solid #000000;border-right:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">January 31, 2022</b></p></td><td style="vertical-align:top;width:15.75%;border-bottom:1.0pt solid #000000;border-right:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">$681,657</p></td><td style="vertical-align:top;width:20.27%;border-bottom:1.0pt solid #000000;border-right:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">$2,430</p></td><td style="vertical-align:top;width:13.7%;border-bottom:1.0pt solid #000000;border-right:1px solid #000000;border-top:1.0pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> Nil    </font></p></td><td style="vertical-align:top;width:15.67%;border-bottom:1.0pt solid #000000;border-left:1px solid #000000;border-right:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">Nil</p></td><td style="vertical-align:top;width:15.08%;border-bottom:1.0pt solid #000000;border-right:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">$684,087</p></td></tr><tr style="height:22pt;"><td style="vertical-align:top;width:19.5%;border-bottom:1.0pt solid #000000;border-left:1.0pt solid #000000;border-right:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">January 31, 2021</b></p></td><td style="vertical-align:top;width:15.75%;border-bottom:1.0pt solid #000000;border-right:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">$651,748</p></td><td style="vertical-align:top;width:20.27%;border-bottom:1.0pt solid #000000;border-right:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">$2,430</p></td><td style="vertical-align:top;width:13.7%;border-bottom:1.0pt solid #000000;border-right:1px solid #000000;border-top:1.0pt solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> Nil    </font></p></td><td style="vertical-align:top;width:15.67%;border-bottom:1.0pt solid #000000;border-left:1px solid #000000;border-right:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 5.15pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">Nil</p></td><td style="vertical-align:top;width:15.08%;border-bottom:1.0pt solid #000000;border-right:1.0pt solid #000000;margin:0pt;padding:0pt 4.9pt 0pt 4.9pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">$654,178</p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-family:'Verdana';">&#8220;</font>Audit Fees<font style="font-family:'Verdana';">&#8221;</font> consist of fees and related disbursements for professional services rendered for the audit of the Company<font style="font-family:'Verdana';">&#8217;</font>s annual consolidated financial statements, reviews of the Company<font style="font-family:'Verdana';">&#8217;</font>s interim consolidated financial statements, services provided in connection with regulatory filings and statutory audits of certain of the Company<font style="font-family:'Verdana';">&#8217;</font>s foreign subsidiaries.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-family:'Verdana';">&#8220;</font>Audit-Related Fees<font style="font-family:'Verdana';">&#8221;</font> consist of fees for assurance and related services that are reasonably related to the performance of the audit or review of the Company<font style="font-family:'Verdana';">&#8217;</font>s financial statements and are not reported as <font style="font-family:'Verdana';">&#8220;</font>Audit Fees<font style="font-family:'Verdana';">&#8221;</font>.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The above amounts are exclusive of any related taxes but are inclusive of disbursements charged to the Company.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;text-align:justify;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;"><b style="font-weight:bold;">ITEM 9</b><font style="display:inline-block;width:111.77pt;"></font><b style="font-weight:bold;">LEGAL PROCEEDINGS</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">41</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The Company and its subsidiaries are subject to a variety of claims and suits that arise from time to time in the ordinary course of our business and are typical in our industry. The consequences of these matters are not presently determinable but, in the opinion of management, the ultimate liability is not expected to have a material effect on our annual results of operations, financial position or capital resources. None of these proceedings involves a claim for damages, exclusive of interest and costs, that exceeds 10% of our current assets.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;text-align:justify;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;"><b style="font-weight:bold;">ITEM 10</b><font style="display:inline-block;width:106.21pt;"></font><b style="font-weight:bold;">ADDITIONAL INFORMATION</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Additional information about us is available at our website at http://www.descartes.com, on SEDAR at http://www.sedar.com and on EDGAR at http://www.sec.gov. Additional information, including directors<font style="font-family:'Verdana';">&#8217;</font> and officers<font style="font-family:'Verdana';">&#8217;</font> remuneration and indebtedness, principal holders of our securities and securities authorized for issuance under equity compensation plans, where applicable, is contained in our Management Information Circular for our annual meeting of shareholders held on June 3, 2021. Additional financial information is provided in the section entitled <font style="font-family:'Verdana';">&#8220;</font>Management<font style="font-family:'Verdana';">&#8217;</font>s Discussion and Analysis of Financial Condition and Results of Operations<font style="font-family:'Verdana';">&#8221;</font> and the consolidated financial statements, the notes thereto and the report of independent registered public accounting firm thereon contained in our Annual Report to the Shareholders for the year ended January 31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="display:none;line-height:0pt;margin:0pt;"><font style="font-family:'Arial','Helvetica','sans-serif';font-size:0pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">42</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">THE DESCARTES SYSTEMS GROUP INC.</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">CHARTER FOR</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">THE AUDIT COMMITTEE OF</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 1.5pt 0pt;"><b style="font-weight:bold;">THE BOARD OF DIRECTORS</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">A. PURPOSE</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">1.</td><td style="padding:0pt;"><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">The primary functions of the Audit Committee are to oversee the accounting and financial reporting practices of The Descartes Systems Group Inc. (the </font><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8220;</font><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">Company</b><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8221;</font><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">) and the audits of the Company</font><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8217;</font><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">s financial statements and to exercise the responsibilities and duties set forth below, including, but not limited to, assisting the Board of Directors (the </font><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8220;</font><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">Board</b><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8221;</font><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">) in fulfilling its responsibilities in respect of the following: reviewing financial disclosures and internal controls over financial reporting; monitoring the system of internal control and compliance with Applicable Requirements (as defined below); selecting the auditors for shareholder approval; reviewing the qualifications, independence and performance of the auditors and the qualifications and performance of the Company</font><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8217;</font><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">s financial management; oversight of overall risk management within the Company; oversight of the Company</font><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8217;</font><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">s internal audit function; and reviewing related party transactions.</font></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">B. MEMBERSHIP AND ORGANIZATION</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">1.</td><td style="padding:0pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">Composition</b><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"> - The Audit Committee shall consist of not less than three independent members of the Board. At the invitation of the Audit Committee, members of the Company</font><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8217;</font><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">s management and others may attend Audit Committee meetings as the Audit Committee considers necessary or desirable.</font></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">2.</td><td style="padding:0pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">Appointment and Removal of Audit Committee Members</b><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"> - Each member of the Audit Committee shall be appointed by the Board on an annual basis and shall serve at the pleasure of the Board, or until the earlier of (a) the close of the next annual meeting of the Company</font><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8217;</font><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">s shareholders at which the member&#39;s term of office expires, (b) the death of the member, or (c) the resignation, disqualification or removal of the member from the Audit Committee or from the Board. The Board may fill a vacancy in the membership of the Audit Committee.</font></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">3.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Chair</b> - At the time of the annual appointment of the members of the Audit Committee, the Board shall appoint a Chair of the Audit Committee. The Chair</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">43</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;">shall: be a member of the Audit Committee, preside over all Audit Committee meetings that he or she attends, coordinate the Audit Committee&#39;s compliance with this mandate, work with management to develop the Audit Committee&#39;s annual work-plan and provide reports of the Audit Committee to the Board.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">4.</td><td style="padding:0pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">Independence</b><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"> - Each member of the Audit Committee shall meet the requirements of applicable law and any applicable requirements promulgated by any exchange upon which securities of the Company are traded, or any governmental or regulatory body exercising authority over the Company, as are in effect from time to time (collectively, the </font><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8220;</font><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">Applicable Requirements</b><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8221;</font><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">) related to independence and audit committee composition.</font></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">5.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Financial Expertise</b> - At the time of his or her appointment to the Audit Committee, each member of the Audit Committee shall be able to read and understand fundamental financial statements, including a balance sheet, cash flow statement and income statement, be <font style="font-family:'Times New Roman','Times','serif';">&#8220;</font><b style="font-weight:bold;">financially literate</b><font style="font-family:'Times New Roman','Times','serif';">&#8221;</font><font style="white-space:pre-wrap;"> as defined under Applicable Requirements, and shall not have participated in the preparation of the financial statements of the Company or any current subsidiary of the Company at any time during the preceding three years.  At least one member of the Audit Committee shall have past employment experience in financing or accounting, requisite professional certification in accounting, or other comparable experience or background which results in the individual</font><font style="font-family:'Times New Roman','Times','serif';">&#8217;</font><font style="white-space:pre-wrap;">s financial sophistication, including being or having been a Chief Executive Officer, Chief Operating Officer, Chief Financial Officer or other senior officer with financial oversight responsibilities.  Further, at least one member of the Audit Committee shall qualify as an </font><font style="font-family:'Times New Roman','Times','serif';">&#8220;</font><b style="font-weight:bold;">audit committee financial expert</b><font style="font-family:'Times New Roman','Times','serif';">&#8221;</font> (as such term is defined under the Securities and Exchange Commission<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s rules).</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">C. MEETINGS</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">1.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Meetings</b> - The members of the Audit Committee shall hold meetings as are required to carry out this mandate, and in any case no less than four meetings annually. The external auditors are entitled to attend and be heard at each quarterly Audit Committee meeting scheduled to consider the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s financial statements. The Chair, any member of the Audit Committee, the external auditors, the Chair of the Board, the Lead Director, the Chief Executive Officer or the Chief Financial Officer may call a meeting of the Audit Committee by</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">44</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;">notifying the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s Corporate Secretary who will notify the members of the Audit Committee. The Chair shall chair all Audit Committee meetings that he or she attends, and in the absence of the Chair, the members of the Audit Committee present may appoint a chair from their number for a meeting.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">2.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Secretary and Minutes</b> - The Corporate Secretary, his or her designate or any other person the Audit Committee requests, shall act as secretary at Audit Committee meetings. Minutes of Audit Committee meetings shall be recorded and maintained by the Corporate Secretary and subsequently presented to the Audit Committee for approval.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">3.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Quorum</b> - A majority of the members of the Audit Committee shall constitute a quorum.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">4.</td><td style="padding:0pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">Access to Management and Outside Advisors</b><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"> - The Audit Committee shall have unrestricted access to the Company</font><font style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">&#8217;</font><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">s management and employees and the books and records of the Company, and, from time to time may hold unscheduled or regularly scheduled meetings or portions of regularly scheduled meetings with the auditor, the Chief Financial Officer, the Chief Operating Officer, President or the Chief Executive Officer. The Audit Committee shall have the authority to conduct investigations into any matters within its scope of responsibilities, retain external legal counsel, consultants or other advisors to assist it in fulfilling its responsibilities and to set and pay the respective compensation for these advisors without consulting or obtaining the approval of the Board or any Company officer. The Company shall provide appropriate funding, as determined by the Audit Committee, for the services of these advisors.</font></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">5.</td><td style="padding:0pt;"><b style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:bold;">Meetings Without Management</b><font style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"> - The Audit Committee shall hold unscheduled or regularly scheduled meetings, or portions of regularly scheduled meetings, at which management is not present.</font></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">D. FUNCTIONS AND RESPONSIBILITIES</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">The Audit Committee shall have the functions and responsibilities set out below as well as any other functions that are specifically delegated to the Audit Committee by the Board and that the Board is authorized to delegate by applicable laws and regulations. In addition to these functions and responsibilities, the Audit Committee shall perform the duties required of an audit committee by the Applicable Requirements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">1.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Financial Reports</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">45</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">a.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">General - The Audit Committee is responsible for overseeing the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s accounting and financial reporting practices and the audits of the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s financial statements. Management is responsible for the preparation, presentation and integrity of the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s financial statements and financial disclosures and for the appropriateness of the accounting principles and the reporting policies used by the Company. The auditors are responsible for auditing the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s annual consolidated financial statements and for reviewing the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s unaudited interim financial statements.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">b.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Review of Annual Financial Reports - The Audit Committee shall review the annual consolidated audited financial statements of the Company prepared by management, the auditors&#39; report thereon and the related management&#39;s discussion and analysis of the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s financial condition and results of operation (<font style="font-family:'Times New Roman','Times','serif';">&#8220;</font><b style="font-weight:bold;">MD&amp;A</b><font style="font-family:'Times New Roman','Times','serif';">&#8221;</font>). After completing its review, if advisable, the Audit Committee shall approve and recommend for Board approval the annual financial statements and the related MD&amp;A.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">c.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Review of Interim Financial Reports - The Audit Committee shall review the interim consolidated financial statements of the Company prepared by management, the auditors<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font> review report thereon and the related MD&amp;A. After completing its review, if advisable, the Audit Committee shall approve and recommend for Board approval the interim financial statements and the related MD&amp;A.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">d.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Review Considerations - In conducting its review of the annual financial statements or the interim financial statements, the Audit Committee shall:</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">i.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">meet with management and the auditors to discuss the financial statements and MD&amp;A;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">ii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review the disclosures in the financial statements;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">iii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review the audit report or review report prepared by the auditors;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">iv.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review the qualitative judgments of the auditors about the appropriateness, not just the acceptability, of accounting principles and financial disclosure practices used or proposed to be adopted by the Company;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">46</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">v.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">discuss with management, the auditors and internal legal counsel, as requested, any litigation claim or other contingency that could have a material effect on the financial statements;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">vi.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review the accounting policies followed and critical accounting and other significant estimates and judgments underlying the financial statements as presented by management;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">vii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review any material effects of regulatory accounting initiatives or off-balance sheet structures on the financial statements as presented by management;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">viii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review any material changes in accounting policies and any significant changes in accounting practices and their impact on the financial statements as presented by management;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">ix.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review the methods used to account for significant unusual transactions;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">x.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review the effect of significant accounting policies in controversial or emerging areas for which there is a lack of authoritative guidance or consensus;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">xi.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review significant recorded and unrecorded audit adjustments;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">xii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="white-space:pre-wrap;">review any  material   accounting   issues   among  management   and the auditors;</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">xiii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review management&#39;s report on the effectiveness of internal controls over financial reporting;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">xiv.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review the factors identified by management as factors that may affect future financial results;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">xv.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review results of the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s audit committee hotline program; and</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">xvi.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review any other matters, related to the financial statements, that are brought forward by the auditors, management or which are required to be communicated to the Audit Committee under accounting policies, auditing standards or Applicable Requirements.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">47</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">e.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Approval of Other Financial Disclosures - The Audit Committee shall review and, if advisable, approve and recommend for Board approval financial disclosure in a prospectus or other securities offering document of the Company, press releases disclosing financial results of the Company and any other material financial disclosure, including financial guidance provided to analysts, rating agencies or otherwise publicly disseminated.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">2.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Independent Auditors</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="font-weight:bold;margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">a.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">General -The Audit Committee shall be responsible for oversight of the work of the auditors, including the auditors<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font> work in preparing or issuing an audit report, performing other audit, review or attest services or any other related work.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">b.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Appointment and Compensation - The Audit Committee shall review and, if advisable, select and recommend for Board and shareholder approval the appointment of the auditors. The Audit Committee shall have ultimate authority to approve all audit engagement terms and fees, including the auditors<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font> audit plan.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">c.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Resolution of Disagreements <font style="font-family:'Times New Roman','Times','serif';">&#8211;</font> Review all reportable events, including any disagreements, unresolved issues and consultations (as those terms are defined by Applicable Requirements), with the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s auditors, whether or not there is to be a change of auditors.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">d.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Change of Auditors <font style="font-family:'Times New Roman','Times','serif';">&#8211;</font> When the Audit Committee determines to recommend a change of auditors or the auditors are otherwise terminated or resign, the Audit Committee shall review all issues related to the change of auditors, including the information required to be disclosed by applicable legal requirements and the planned steps for an orderly transition.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">e.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Discussions with Auditors <font style="font-family:'Times New Roman','Times','serif';">&#8211;</font> At least annually, the Audit Committee shall discuss with the auditors such matters as are required by applicable auditing standards to be discussed by the auditors with the audit committee, including the matters required to be discussed by applicable auditing standards.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">f.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Audit Plan - At least annually, the Audit Committee shall review a</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">48</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 72pt;">summary of the auditors&#39; annual audit plan. The Audit Committee shall consider and review with the auditors any material changes to the scope of the plan.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">g.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Quarterly Review Report - The Audit Committee shall review a report prepared by the auditors in respect of each of the interim financial statements of the Company.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">h.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Independence of Auditors - At least annually, and before the auditors issue their report on the annual financial statements, the Audit Committee shall: obtain from the auditors a formal written statement describing all relationships between the auditors and the Company; discuss with the auditors any disclosed relationships or services that may impact the objectivity and independence of the auditors; and obtain written confirmation from the auditors that they are objective and independent within the meaning of the applicable Rules of Professional Conduct/Code of Ethics adopted by the provincial institute or order of chartered accountants to which it belongs and other Applicable Requirements. The Audit Committee shall take appropriate action to oversee the independence of the auditors.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">i.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Evaluation and Rotation of Lead Partner - At least annually, the Audit Committee shall review the qualifications and performance of the lead partner(s) of the auditors. The Audit Committee shall obtain a report from the auditors annually verifying that the lead partner of the auditors has served in that capacity for no more than five fiscal years of the Company and that the engagement team collectively possesses the experience and competence to perform an appropriate audit.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">j.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Evaluation of performance and audit quality <font style="font-family:'Times New Roman','Times','serif';">&#8211;</font><font style="white-space:pre-wrap;">  the Audit Committee shall review and evaluate the performance of the external auditor to assess the quality of the audit and the services performed by the external auditor.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">k.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Requirement for Pre-Approval of Non-Audit Services - The Audit Committee shall approve in advance any retainer of the auditors to perform any non-audit service to the Company that it deems advisable in accordance with Applicable Requirements, and Board approved policies and procedures. The Audit Committee may delegate pre-approval</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">49</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 72pt;">authority to a member of the Audit Committee. The decisions of any member of the Audit Committee to whom this authority has been delegated must be presented to the full Audit Committee at its next scheduled Audit Committee meeting.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 72pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">l.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Review of Professional Services - The Audit Committee shall review reports from management at each quarterly Audit Committee meeting scheduled to consider the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s financial statements concerning expenses incurred in the quarter for the services of any accounting firm (other than the appointed auditor) engaged to provide services to the Company, in each case to the extent that the amount of such expenses in respect of any such firm exceeds $100,000.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">m.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Approval of Hiring Policies - The Audit Committee shall review and approve the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s hiring policies regarding partners, employees and former partners and employees of the present and former external auditors of the Company.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">3.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Internal Controls</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="font-weight:bold;margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">a.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">General - The Audit Committee shall review reports from management on the nature, establishment, monitoring and effectiveness of the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s system of internal control over financial reporting and disclosure controls and procedures (as those terms are defined in the Applicable Requirements).</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">b.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Establishment, Review and Approval - The Audit Committee shall require management to establish and maintain appropriate systems of internal control over financial reporting and disclosure controls and procedures in accordance with Applicable Requirements and guidance and to review, evaluate and approve these controls and procedures. At least annually, the Audit Committee shall consider and review with management and the auditors:</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">i.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">the effectiveness of, or weaknesses or deficiencies in the design or operation of the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s internal control over financial reporting and disclosure controls and procedures, and the impact of any identified weaknesses in these controls and procedures on management&#39;s conclusions;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">50</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">ii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">any significant changes in internal control over financial reporting that are disclosed, or considered for disclosure, including those in the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s periodic regulatory filings;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">iii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">the auditors<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font> report on the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s internal control over financial reporting;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">iv.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">any material issues raised by any inquiry or investigation by the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s regulators;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">v.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s fraud prevention and detection program, including deficiencies in internal controls that may impact the integrity of financial information, or may expose the Company to other significant internal or external fraud losses and the extent of those losses and any disciplinary action in respect of fraud taken against management or other employees who have a significant role in financial reporting; and</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:90pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">vi.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">any related significant issues and recommendations of the auditors together with management&#39;s responses thereto, including the timetable for implementation of recommendations to correct weaknesses in internal controls over financial reporting and disclosure controls.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 90pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;"><b style="font-weight:bold;">E. Risk Management</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">c.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">General <font style="font-family:'Times New Roman','Times','serif';">&#8211;</font> In addition to being responsible for overseeing risks related to the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s accounting, financial statements, financial reporting process and internal controls related to financial reporting, the Audit Committee is also responsible for overseeing management<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font><font style="white-space:pre-wrap;">s implementation and operation of the enterprise risk management program, as documented in the Risk Management Policy established by the Board of Directors.   The risk oversight process is the means by which the Board of Directors determines that the Company has in place an effective process for identifying, assessing, managing and monitoring key risks in the business on a continuous basis as the business evolves.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">d.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Management Responsibilities - Management is responsible for:</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">51</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:76.5pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:31.5pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">i.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="white-space:pre-wrap;">ensuring the development and implementation of the Risk Management process.  Risk Management is the framework required to identify, assess and develop strategies to manage and monitor control risks;</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:31.5pt;text-indent:-31.5pt;margin:0pt 0pt 0pt 76.5pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:76.5pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:31.5pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">ii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">the design and implementation of the actions, measures and/or processes to mitigate to an appropriate level all material risks in the business (the <font style="font-family:'Times New Roman','Times','serif';">&#8220;</font><b style="font-weight:bold;">Risk Controls</b><font style="font-family:'Times New Roman','Times','serif';">&#8221;</font>) including the design and implementation of appropriate crisis preparedness, business continuity and disaster recovery plans; and</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:31.5pt;text-indent:-31.5pt;margin:0pt 0pt 0pt 76.5pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:76.5pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:31.5pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">iii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">monitoring overall compliance with and adherence to the Risk Management Policy as established by the Board of Directors.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:31.5pt;text-indent:-31.5pt;margin:0pt 0pt 0pt 76.5pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">e.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Audit Committee Responsibilities - The Audit Committee is responsible for:</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:76.5pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:31.5pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">i.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="white-space:pre-wrap;">at least annually, reviewing the effectiveness of the Risk Management program that is in place.  As part of its review, the Audit Committee will review reports prepared by management that assess the risks in the business, identifies the Risk Controls that are in place to mitigate and manage these risks to an appropriate level, and evaluate the residual risk in the business (the risk that remains after implementation of the Risk Controls);</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:31.5pt;text-indent:-31.5pt;margin:0pt 0pt 0pt 76.5pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:76.5pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:31.5pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">ii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">periodically monitor risk and risk management capabilities within the Company including crisis preparedness, business continuity and disaster recovery plans; and</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:31.5pt;text-indent:-31.5pt;margin:0pt 0pt 0pt 76.5pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:76.5pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:31.5pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">iii.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">reporting to the Board of Directors on its oversight of the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font><font style="white-space:pre-wrap;">s Risk Management program,  including an assessment of whether the program is being followed and is effective.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:31.5pt;text-indent:-31.5pt;margin:0pt 0pt 0pt 76.5pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">f.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Computerized Information Systems - The Audit Committee shall review reports from the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s management containing its assessment of the adequacy of the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s computerized information system controls and security and related risks, including cybersecurity risk.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">4.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Internal Audit</b> <font style="font-family:'Times New Roman','Times','serif';">&#8211;</font> the Audit Committee may choose to establish and maintain an</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">52</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;"><font style="white-space:pre-wrap;">Internal Audit function from time to time.   If so established, the internal audit function will report directly to the Chair of the Audit Committee and administratively to the Chief Financial Officer.  In relation to the internal audit function, if so established and maintained, the Audit Committee shall:</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">a.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Establish an internal audit charter and review and approve any necessary revisions to such charter on an annual basis;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">b.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">review and evaluate the effectiveness of the internal audit function;</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">c.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="white-space:pre-wrap;">review the  operating budget for the internal audit function including staffing levels and resources; and</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:54pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">d.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">On a regular basis, meet with the head of the internal audit function without other members of management present.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 54pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">5.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Compliance with Legal and Regulatory Requirements</b> - The Audit Committee shall review reports from the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s Corporate Secretary and other management members on: legal or compliance matters that may have a material impact on the Company; the effectiveness of the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s compliance policies; and any material communications received from regulators. The Audit Committee shall review management&#39;s evaluation of and representations relating to compliance with specific Applicable Requirements, and management&#39;s plans to remediate any deficiencies identified.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">6.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Audit Committee Hotline Procedures</b><font style="white-space:pre-wrap;"> - The Audit Committee shall establish procedures for (a) the receipt, retention, and treatment of complaints received by the Company regarding accounting, internal accounting controls, or auditing matters; and (b) the confidential, anonymous submission by employees of the Company of concerns regarding questionable accounting or auditing matters.  Any such complaints or concerns that are received shall be reviewed by the Audit Committee and, if the Audit Committee determines that the matter requires further investigation, it will direct the Chair of the Audit Committee to engage outside advisors, as it deems necessary or appropriate, to investigate the matter and will work with management and the Company</font><font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s general counsel to reach a satisfactory conclusion.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">7.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Audit Committee Disclosure</b> - The Audit Committee shall prepare, review and approve any audit committee disclosures required by Applicable Requirements in the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s disclosure documents.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">53</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">8.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Related Party Transactions</b> - The Audit Committee shall review the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s policies relating to any transactions between the Company and the executive officers of the Company or members of the Board. The Audit Committee will review and approve all payments to be made pursuant to any significant transactions concerning the Company (or any subsidiary of the Company) and involving any executive officer of the Company or member of the Board outside of the scope of approved compensation arrangements and customary expense reimbursement, recognizing the Audit Committee continues to review all expense reimbursement to the CEO. <font style="font-family:'Times New Roman','Times','serif';">&#160;&#160;</font>For the purposes of the above, a <font style="font-family:'Times New Roman','Times','serif';">&#8220;</font>significant transaction<font style="font-family:'Times New Roman','Times','serif';">&#8221;</font> shall be deemed to include any transaction involving a payment or other consideration in excess of $10,000 in a single transaction or any combination of transactions within the same fiscal year of the Company.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">9.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"> <b style="font-weight:bold;">Requirement for Review and Approval of the CEO Business Expenses</b><font style="white-space:pre-wrap;"> - The Chair of the Audit Committee shall review and approve the reimbursable business expenses incurred by the Chief Executive Officer of the Company in connection with the performance of his duties.  Such approval may be provided subsequent to reimbursement of such expenses.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">10.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Review of Audit Committee Charter - </b>On at least an annual basis, the Audit Committee shall, in conjunction with the Corporate Governance Committee, review and reassess the adequacy of this Audit Committee Charter.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">11.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><b style="font-weight:bold;">Delegation</b> - The Audit Committee may, to the extent permissible by Applicable Requirements, designate a sub-committee to review any matter within this mandate as the Audit Committee deems appropriate.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">F. REPORTING TO THE BOARD</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">1.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">The Chair shall report to the Board, as required by Applicable Requirements or as deemed necessary by the Audit Committee or as requested by the Board, on matters arising at Audit Committee meetings and, where applicable, shall present the Audit Committee&#39;s recommendation to the Board for its approval.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">54</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;A&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">G. GENERAL</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">1.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">The Audit Committee shall, to the extent permissible by Applicable Requirements, have such additional authority as may be reasonably necessary or desirable, in the Audit Committee<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s discretion, to exercise its powers and fulfill the duties under this mandate.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">H. CURRENCY OF THE AUDIT COMMITTEE CHARTER</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">1.</p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">This charter was last approved by the Audit Committee and Board on March 30, 2021.</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 5pt 18pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p><p style="display:none;line-height:0pt;margin:0pt;"><font style="font-family:'Arial','Helvetica','sans-serif';font-size:0pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">55</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;B&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">PRE-APPROVAL POLICY AND PROCEDURE FOR ENGAGEMENTS OF THE INDEPENDENT AUDITOR</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">The responsibilities of the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s audit committee are set out in the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s Audit Committee Charter, which responsibilities include pre-approving audit and non-audit services provided by the independent auditors in order to ensure the services do not impair the auditors&#39; independence. Applicable securities commissions and accounting standards boards have issued rules specifying the permissible services independent auditors may provide to audit clients, as well as the pre-approval of fees. Accordingly, the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s Audit Committee has adopted the following Pre-Approval Policy and Procedure.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Under the Audit Committee&#39;s approach, an annual program of work will be approved each year for the following categories of services: Audit, Audit-Related, and Tax. Each engagement or category of service will be presented in appropriate detail by business function and geographic area to provide the Audit Committee sufficient understanding of the services provided. Additional engagements may be brought forward from time to time for pre-approval by the Audit Committee.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">The Audit Committee will consider whether any service to be obtained from the independent auditors is consistent with applicable rules on auditor independence. Also, the Audit Committee will consider the level of Audit and Audit-Related fees in relation to all other fees paid to the independent auditors, and will review such level each year. In carrying out this responsibility, the Audit Committee may obtain input from Company management on the general level of fees, and the process for determining and reporting fees from the numerous locations where the Company operates and the independent auditors provide services.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">The term of any pre-approval applies to the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s financial year. Thus, Audit fees for the financial year may include work performed after the close of the calendar year. The pre-approval for Audit-Related and Tax fees is on a calendar-year basis. Unused pre-approval amounts will not be carried forward to the next financial year. Pre-approvals will apply to engagements within a category of service, and cannot be transferred between categories. If fees might otherwise exceed pre-approved amounts for any category of permissible services, then time will be scheduled so that incremental amounts can be reviewed and pre-approved prior to commitment.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Audit Services</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Audit services include the annual financial statement audit engagement (including required quarterly reviews), affiliate and subsidiary statutory audits, and other procedures required to be performed by the independent auditors to render an opinion on the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s consolidated financial statements. Audit services also include information systems reviews, tests performed on the system of internal controls, and other procedures necessary to support the independent auditors&#39; attestation of management&#39;s report on</p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">56</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;B&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">internal controls for financial reporting consistent with applicable securities legislation, as applicable.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">The independent auditors are responsible for cost-effectively providing audit services and confirming that audit services are not undertaken prior to review and pre-approval by the Audit Committee. The independent auditors and Company management will jointly manage a process for collecting and reporting Audit fees billed by the independent auditors to Company each year.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Audit-Related Services</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Audit-Related services include services that are reasonably related to the review of the Company<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s financial statements. These services include benefit plan and joint venture audits, attestation procedures related to cost certifications and government compliance, consultations on accounting issues, and due diligence procedures. Each year the Audit Committee will review the proposed services to ensure the independence of the independent auditors is not impaired.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Pre-approval will occur each year coincident with pre-approval of Audit services. Company management will monitor the engagement of the independent auditors for Audit-Related services using designated process owners. This process will help provide assurance that the aggregate dollar amount of services obtained does not exceed pre-approval amounts at any time, and that new engagements not initially identified are pre-approved prior to commitment.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Tax Services</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">The Audit Committee concurs that the independent auditors may provide certain Tax services without impairing independence. These services include preparing local tax filings and related tax services, tax planning, preparing individual employee expatriate tax returns, and other services permitted by applicable securities regulations. The Audit Committee will not permit engaging the independent auditors (1) in connection with a transaction, the sole purpose of which may be impermissible tax avoidance, or (2) for any tax services that may be prohibited by applicable securities rules now or in the future. Company management will monitor the engagement of the independent auditors or other firms for such Tax services to help provide assurance that aggregate dollar amounts of services obtained from the independent auditors do not exceed pre-approval amounts at any time.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">All Other Services</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">The Company does not envision obtaining other services from the independent auditors, except for the Audit, Audit-Related, and Tax services described previously. If permissible other services are requested by the Company, each engagement must be pre-approved by the Audit Committee. Such requests should be supported by endorsement of the Chief Financial Officer prior to review with the Audit Committee.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">57</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">Appendix &#8220;B&#8221; to Annual Information Form</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Prohibited Services</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Current securities regulations specify that independent auditors may not provide the following prohibited services: Bookkeeping, Financial Information Systems Design and Implementation, Appraisals or Valuation (other than Tax), Fairness Opinions, Actuarial Services, Internal Audit Outsourcing, Management Functions, Human Resources such as Executive Recruiting, Broker-Dealer Services, Legal Services, or Expert Services such as providing expert testimony or opinions where the purpose of the engagement is to advocate the client&#39;s position in an adversarial proceeding. Company personnel may not under any circumstances engage the independent auditors for prohibited services. Potential engagements not clearly permissible should be referred to the Chief Financial Officer.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Delegation</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">The Audit Committee may delegate pre-approval authority to one or more of its members. The member or members to whom such authority is delegated shall report any pre-approval decisions to the Audit Committee at its next scheduled meeting. The Audit Committee may not delegate to management the Audit Committee<font style="font-family:'Times New Roman','Times','serif';">&#8217;</font>s responsibilities to pre-approve services performed by the independent auditor.</p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">58</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-99.2
<SEQUENCE>3
<FILENAME>dsgx-20220131xex99d2.htm
<DESCRIPTION>EXHIBIT-99.2
<TEXT>
<XBRL>
<?xml version='1.0' encoding='UTF-8'?>

      <!-- iXBRL document created with: Toppan Merrill Bridge iXBRL 9.6.8119.21675 -->
      <!-- Based on: iXBRL 1.1 -->
      <!-- Created on: 4/14/2022 5:56:45 PM -->
      <!-- iXBRL Library version: 1.0.8119.21683 -->
      <!-- iXBRL Service Job ID: 61ae31be-b110-4d58-bbbf-ac44f84f044f -->

  <html xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31" xmlns:dsgx="http://www.descartes.com/20220131" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:country="http://xbrl.sec.gov/country/2021" 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:dei="http://xbrl.sec.gov/dei/2021q4" 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:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:EntityCentralIndexKey" id="Tc_defcLYsDyUqJMY80RNDEeQ_1_1">0001050140</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:CurrentFiscalYearEndDate" id="Tc_KEBrTI3I8ku_KmiURK7CCA_2_1">--01-31</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:DocumentFiscalYearFocus" id="Tc_Tb_RcbCYukGdLE4POVyevA_9_1">2022</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:DocumentFiscalPeriodFocus" id="Tc_BPzr-1WzIEWP4do1QRdBSQ_10_1">FY</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dei:AmendmentFlag" id="Tc_mbHvYxe3EUiUTAH4TxMkAQ_11_1">false</ix:nonNumeric><ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="0" name="us-gaap:CommonStockSharesOutstanding" id="Hidden_oTuJBvmFPEiJzwnT12xkUA">84756210</ix:nonFraction><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_Zvp0J6SLfky_u_84LejsAQ" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Hidden_X5IRyacMyEe63uLdWdhnyg">P2Y</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_SwKl7wxg4U6E3uj88OkY1A" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Hidden_H4Aki753xUGuQreNk3KAuw">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ucbf_Mqi5E-GHs4jl2soJw" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Hidden_R3HFVPmLxECS61adSjqHBQ">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_iiILgc48IEu3k37t4FnrZA" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Hidden_eEcpTStYuEqXnki-TnMzpQ">P2Y</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_0oTRyn6q_ESvDqkRHqwbiw" name="dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" id="Hidden_HWyYO8ERp0Wr4ZxBm81I0w">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_rqml2znZlUqm4RPvFsDXeg" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Hidden_MlLWcOJvI0Cji82e8NzJRw">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_dsgx_CashsettledRestrictedSharePlanMember_xKtZmAwUnU66uUCT2654kw" name="dsgx:CashSettledRestrictedShareUnitsVestingPeriod" id="Hidden_-ChMqGiq8EGz7VHoOSALbg">P3Y</ix:nonNumeric><ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_5VdpNuQirk-81zaOQK04WA" decimals="0" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" id="Hidden_v1hWYzs9B0OsbeIvMBY_nA">11</ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_qVi9CDTjukeDzh6qfnf3_w" decimals="0" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" id="Hidden_pcGK0s4hq0-HLRSRmdjzvQ">13</ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember_z7MAqE8efEW_Ldoeku3vXw" decimals="-5" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" id="Hidden_oRGbY52OSUKIW_NyZgdorw">9300000</ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" id="Hidden_TB-LMOBP7kaQwfz92D98Eg">7354000</ix:nonFraction></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="dsgx-20220131.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:21.6pt;min-height:14.4pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;min-height:75pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Exhibit 99.2</b></p><a id="_5b48f3fb_97e5_425c_ac88_94d2cd15d045"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 100pt 0pt;"><img src="dsgx-20220131xex99d2001.jpg" alt="DescartesLOGO_Black.jpg" style="display:inline-block;height:64.39pt;left:0.28%;padding-bottom:0pt;position:relative;top:0pt;width:321pt;" /></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><img src="dsgx-20220131xex99d2002.jpg" alt="Graphic" style="display:inline-block;height:74.8pt;left:0%;padding-bottom:0.2pt;position:relative;top:0pt;width:540pt;" /></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:right;margin:0pt 0pt 100pt 0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:right;margin:0pt 0pt 12pt 0pt;">US GAAP FINANCIAL RESULTS FOR THE 2022 FISCAL&#xA0;YEAR</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="display:none;font-family:'Arial','Helvetica','sans-serif';line-height:0pt;text-align:justify;margin:0pt;"><span style="font-size:0pt;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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;min-height:11.5pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="_cdfb5c14_1772_4909_a9d4_64a270d16b43"></a><div style="font-family:'Arial','Helvetica','sans-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:60.0%;border:none;margin:0 auto 0 0;"><a id="TOC"></a></div></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-weight:bold;">TABLE OF CONTENTS</b></p><div style="font-family:'Arial','Helvetica','sans-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:60.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr><td style="vertical-align:top;width:89.69%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:top;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:top;width:89.69%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><a href="#Management"><span style="font-style:normal;font-weight:normal;">MANAGEMENT&#x2019;S REPORT ON FINANCIAL STATEMENTS AND INTERNAL CONTROL OVER FINANCIAL REPORTING</span></a></p></td><td style="vertical-align:top;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">3</p></td></tr><tr><td style="vertical-align:top;width:89.69%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:4pt 0pt 0pt 0pt;"><a href="#Report"><span style="font-style:normal;font-weight:normal;">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</span></a></p></td><td style="vertical-align:top;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:4pt 0pt 0pt 0pt;">4</p></td></tr><tr><td style="vertical-align:top;width:89.69%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:4pt 0pt 0pt 0pt;"><a href="#Balancesheet"><span style="font-style:normal;font-weight:normal;">CONSOLIDATED BALANCE SHEETS</span></a></p></td><td style="vertical-align:top;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:4pt 0pt 0pt 0pt;">8</p></td></tr><tr><td style="vertical-align:top;width:89.69%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:4pt 0pt 0pt 0pt;"><a href="#SOP"><span style="font-style:normal;font-weight:normal;">CONSOLIDATED STATEMENTS OF OPERATIONS</span></a></p></td><td style="vertical-align:top;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:4pt 0pt 0pt 0pt;">9</p></td></tr><tr><td style="vertical-align:top;width:89.69%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:4pt 0pt 0pt 0pt;"><a href="#Comperhensive"><span style="font-style:normal;font-weight:normal;">CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</span></a></p></td><td style="vertical-align:top;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:4pt 0pt 0pt 0pt;">10</p></td></tr><tr><td style="vertical-align:top;width:89.69%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:4pt 0pt 0pt 0pt;"><a href="#Equity"><span style="font-style:normal;font-weight:normal;">CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#x2019; EQUITY</span></a></p></td><td style="vertical-align:top;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:4pt 0pt 0pt 0pt;">11</p></td></tr><tr><td style="vertical-align:top;width:89.69%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:4pt 0pt 0pt 0pt;"><a href="#Cashflow"><span style="font-style:normal;font-weight:normal;">CONSOLIDATED STATEMENTS OF CASH FLOWS</span></a></p></td><td style="vertical-align:top;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:4pt 0pt 0pt 0pt;">12</p></td></tr><tr><td style="vertical-align:top;width:89.69%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:4pt 0pt 0pt 0pt;"><a href="#Notes"><span style="font-style:normal;font-weight:normal;">NOTES&#xA0;TO CONSOLIDATED FINANCIAL STATEMENTS</span></a></p></td><td style="vertical-align:top;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:4pt 0pt 0pt 0pt;">13</p></td></tr><tr><td style="vertical-align:top;width:89.69%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:4pt 0pt 0pt 0pt;"><a href="#CorporateInformation"><span style="font-style:normal;font-weight:normal;">CORPORATE INFORMATION</span></a></p></td><td style="vertical-align:top;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:4pt 0pt 0pt 0pt;">46</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">2</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;min-height:11.5pt;"><a id="_d059fabc_f38e_4119_a782_72156f961866"></a><div style="font-family:'Arial','Helvetica','sans-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:60.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;"><span style="font-size:8pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Management"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">MANAGEMENT&#x2019;S REPORT ON FINANCIAL STATEMENTS </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">AND INTERNAL CONTROL OVER FINANCIAL </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">REPORTING</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:10.0pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:60.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt;">Financial Statements</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Management is responsible for the accompanying consolidated financial statements and all other information in this Annual Report. These consolidated financial statements have been prepared in accordance with US generally accepted accounting principles (&#x201C;GAAP&#x201D;) and necessarily include amounts that reflect management&#x2019;s judgment and best estimates. Financial information contained elsewhere in this Annual Report is prepared on a basis consistent with the consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The Board of Directors carries out its responsibilities for the consolidated financial statements through its Audit Committee, consisting solely of independent directors. The Audit Committee meets with management and the independent auditors to review the consolidated financial statements and internal controls as they relate to financial reporting. The Audit Committee reports its findings to the Board of Directors for its consideration in approving the consolidated financial statements for issuance to shareholders.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt;">Internal Control Over Financial Reporting</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Management is responsible for establishing and maintaining adequate internal control over financial reporting. Internal control over financial reporting is a process designed by, or under the supervision of, the Chief Executive Officer and Chief Financial Officer and effected by the Board of Directors, management and other personnel to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with GAAP.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Due to its inherent limitations, internal control over financial reporting may not prevent or detect misstatements on a timely basis.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, management assessed the effectiveness of our internal control over financial reporting as of January&#xA0;31, 2022, based on criteria established in &#x201C;Internal Control&#xA0;&#x2013; Integrated Framework&#x201D; (2013), issued by the Committee of Sponsoring Organizations of the Treadway Commission. Based on the assessment, management concluded that, as of January&#xA0;31, 2022, the design and operation of our internal control over financial reporting was effective.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Management&#x2019;s internal control over financial reporting as of January&#xA0;31, 2022, has been audited by KPMG LLP, Independent Registered Public Accounting Firm, who also audited our Consolidated Financial Statements for the&#xA0;year ended January&#xA0;31, 2022, as stated in the Report of Independent Registered Public Accounting Firm, which expressed an unqualified opinion on the effectiveness of our internal control over financial reporting as of January&#xA0;31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt;">Changes in Internal Control Over Financial Reporting</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">During the fiscal&#xA0;year ended January&#xA0;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.</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:50%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><i style="font-family:'Verdana';font-size:9.5pt;font-style:italic;">&#x2018;</i><i style="font-size:9.5pt;font-style:italic;">Edward J. Ryan</i><i style="font-family:'Verdana';font-size:9.5pt;font-style:italic;">&#x2019;</i></p></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><i style="font-family:'Verdana';font-size:9.5pt;font-style:italic;">&#x2018;</i><i style="font-size:9.5pt;font-style:italic;">Allan Brett</i><i style="font-family:'Verdana';font-size:9.5pt;font-style:italic;">&#x2019;</i></p></td></tr><tr><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-size:9.5pt;">Edward J. Ryan</span></p></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-size:9.5pt;">Allan Brett</span></p></td></tr><tr><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-size:9.5pt;">Chief Executive Officer</span></p></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-size:9.5pt;">Chief Financial Officer</span></p></td></tr><tr style="height:7.65pt;"><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-size:9.5pt;">Waterloo, Ontario</span></p></td><td style="vertical-align:top;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-size:9.5pt;">Waterloo, Ontario</span></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">3</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;min-height:31.53pt;"><a id="_3a3d9fe1_5ae4_4b6d_a708_f68d5935e161"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><img src="dsgx-20220131xex99d2007.jpg" alt="Graphic" style="display:inline-block;height:30.88pt;left:0%;padding-bottom:0.65pt;position:relative;top:0pt;width:76.55pt;" /></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;">KPMG LLP</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;">Bay Adelaide Centre</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.5pt;">Suite&#xA0;4600</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.5pt;">333 Bay Street</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.5pt;">Toronto, ON Canada M5H 2S5</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.5pt;">Telephone (416) 777-8500</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.4pt;">Fax (416) 777-8818</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 94.5pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">www.kpmg.ca</span></p><a id="Report"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Report of Independent Registered Public Accounting Firm</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">To the Shareholders and Board of Directors of The Descartes Systems Group&#xA0;Inc.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">Opinion on the Consolidated Financial Statements</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We have audited the accompanying consolidated balance sheets of The Descartes Systems Group&#xA0;Inc. (the Company) as of January&#xA0;31, 2022 and 2021, the related consolidated statements of operations, comprehensive income, shareholders&#x2019; equity, and cash flows for each of the&#xA0;years in the three-year period ended January&#xA0;31, 2022, and the related notes (collectively, the consolidated financial statements). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company as of January&#xA0;31, 2022 and 2021, and the results of its operations and its cash flows for each of the&#xA0;years in the three-year period ended January&#xA0;31, 2022, in conformity with U.S.&#xA0;generally accepted accounting principles.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (PCAOB), the Company&#x2019;s internal control over financial reporting as of January&#xA0;31, 2022, based on criteria established in <i style="font-style:italic;">Internal Control&#xA0;&#x2013; Integrated Framework (2013)</i> issued by the Committee of Sponsoring Organizations of the Treadway Commission, and our report dated March&#xA0;2, 2022 expressed an unqualified opinion on the effectiveness of the Company&#x2019;s internal control over financial reporting.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">Basis for Opinion</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">These consolidated financial statements are the responsibility of the Company&#x2019;s management. Our responsibility is to express an opinion on these consolidated financial statements based on our audits. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules&#xA0;and regulations of the Securities and Exchange Commission and the PCAOB.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud. Our audits included performing procedures to assess the risks of material misstatement of the consolidated financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the consolidated financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the consolidated financial statements. We believe that our audits provide a reasonable basis for our opinion.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">Critical Audit Matter</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The critical audit matter communicated below is a matter arising from the current period audit of the consolidated financial statements that was communicated or required to be communicated to the audit committee and that: (1)&#xA0;relates to accounts </p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">4</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">or disclosures that are material to the consolidated financial statements and (2)&#xA0;involved our especially challenging, subjective, or complex judgments. The communication of a critical audit matter does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matter below, providing a separate opinion on the critical audit matter or on the accounts or disclosures to which it relates.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">Determination of standalone selling prices of distinct performance obligations for customer contracts with multiple performance obligations</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As discussed in Note&#xA0;2 to the consolidated financial statements, the Company enters into contracts that can include the delivery of various combinations of goods and/or services. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the standalone selling price (SSP). SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract. If the Company does not have an observable SSP for a particular good or service, then SSP is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach. When estimating the SSP, the Company makes certain significant assumptions including the basis for stratification of the underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. The Company&#x2019;s consolidated revenues were $424,690 thousand for the&#xA0;year ended January&#xA0;31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We identified the evaluation of the determination of the SSP of distinct performance obligations for customer contracts with multiple performance obligations as a critical audit matter. A higher degree of auditor judgment was required to evaluate the approach and the significant assumptions, including the basis for stratification, used to determine SSP for each distinct performance obligation in a customer contract.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following are the primary procedures we performed to address this critical audit matter. We evaluated the design and tested the operating effectiveness of internal controls related to the critical audit matter, including controls related to the approach and significant assumptions used to determine SSP for distinct performance obligations in customer contracts with multiple performance obligations. We evaluated the approach used to determine SSP by comparing it to current pricing patterns in relevant customer contracts and the pricing practices observed in the industry. We examined certain revenue transactions from the SSP population and compared attributes such as price and level of the employee rendering the service to customer contracts and invoices to evaluate the significant assumptions used, including the basis of stratification.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">/s/ KPMG LLP</p><a id="_0fa92f5a_d250_4270_a431_8da0ea5319fe"></a><a id="_2b72a9f2_5913_4ec8_bd0b_62dd358b4001"></a><a id="_3d1280c1_c669_4982_b537_9da1aa976a9e"></a><a id="_60e7534c_2bcf_4e03_96bb_8f484b84a397"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;table-layout:auto;width:87.53%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.54%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Chartered Professional Accountants, Licensed Public Accountants</p></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.54%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.54%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">We have served as the Company&#x2019;s auditor since 2015.</p></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.54%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.54%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Toronto, Canada</p></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.54%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">March 2, 2022</p></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">5</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;min-height:31.53pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><img src="dsgx-20220131xex99d2007.jpg" alt="Graphic" style="display:inline-block;height:30.88pt;left:0%;padding-bottom:0.65pt;position:relative;top:0pt;width:76.55pt;" /></p><a id="_3d9cb4a8_3c29_4e43_8f53_219169d88d20"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;">KPMG LLP</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.3pt;">Bay Adelaide Centre</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.5pt;">Suite&#xA0;4600</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.5pt;">333 Bay Street</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.5pt;">Toronto, ON Canada M5H 2S5</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.5pt;">Telephone (416) 777-8500</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 94.4pt;">Fax (416) 777-8818</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 94.5pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">www.kpmg.ca</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Report of Independent Registered Public Accounting Firm</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">To the Shareholders and Board of Directors of The Descartes Systems Group&#xA0;Inc.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">Opinion on Internal Control Over Financial Reporting</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We have audited The Descartes Systems Group&#xA0;Inc.&#x2019;s internal control over financial reporting as of January&#xA0;31, 2022, based on criteria established in Internal Control&#xA0;&#x2013; Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission. In our opinion, The Descartes Systems Group&#xA0;Inc. (the Company) maintained, in all material respects, effective internal control over financial reporting as of January&#xA0;31, 2022, based on criteria established in Internal Control&#xA0;&#x2013; Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (PCAOB), the consolidated balance sheets of the Company as of January&#xA0;31, 2022 and 2021, the related consolidated statements of operations, comprehensive income, shareholders&#x2019; equity, and cash flows for each of the&#xA0;years in the three-year period ended January&#xA0;31, 2022, and the related notes (collectively, the consolidated financial statements), and our report dated March&#xA0;2, 2022 expressed an unqualified opinion on those consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">Basis for Opinion</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The Company&#x2019;s management is responsible for maintaining effective internal control over financial reporting and for its assessment of the effectiveness of internal control over financial reporting, included in the accompanying Management&#x2019;s Report on Financial Statements and Internal Control Over Financial Reporting preceding our reports. Our responsibility is to express an opinion on the Company&#x2019;s internal control over financial reporting based on our audit. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules&#xA0;and regulations of the Securities and Exchange Commission and the PCAOB.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We conducted our audit in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether effective internal control over financial reporting was maintained in all material respects. Our audit of internal control over financial reporting included obtaining an understanding of internal control over financial reporting, assessing the risk that a material weakness exists, and testing and evaluating the design and operating effectiveness of internal control based on the assessed risk. Our audit also included performing such other procedures as we considered necessary in the circumstances. We believe that our audit provides a reasonable basis for our opinion.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">Definition and Limitations of Internal Control Over Financial Reporting</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">A company&#x2019;s internal control over financial reporting is a process designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally </p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">6</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">accepted accounting principles. A company&#x2019;s internal control over financial reporting includes those policies and procedures that (1)&#xA0;pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of the assets of the company; (2)&#xA0;provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with generally accepted accounting principles, and that receipts and expenditures of the company are being made only in accordance with authorizations of management and directors of the company; and (3)&#xA0;provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use, or disposition of the company&#x2019;s assets that could have a material effect on the financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">/s/ KPMG LLP</p><a id="_c97227f1_af51_4cec_a6f3_18010ad3bcf6"></a><a id="_bccadd05_a179_43c8_8eb0_b0ad53e9abe6"></a><a id="_9e71f4e6_aa34_4201_bac3_27d1420b70d6"></a><a id="_af72279c_b28b_408e_96b2_70626d1ee4e5"></a><a id="_e4e91edf_b011_4d16_be60_6260419c3a33"></a><a id="_9015693c_c848_4620_bfeb_76f721065706"></a><a id="_0df9511c_7123_4d8f_a283_01c1556baf7d"></a><a id="_0ab759e1_2a7b_49a8_9aea_52ddd7bb1a61"></a><a id="_a0f7070e_d996_4d07_bc4c_9cbbbe11fa02"></a><a id="_bf5d2a14_64e0_4bfd_8e38_638a51881cec"></a><a id="_c7929139_1dbc_4f1e_910e_3bc5229b59a3"></a><a id="_59dd3865_48ac_4c12_9ade_4591469475ca"></a><a id="_d223e1c4_ef70_481d_bc46_94ac88002709"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:87.53%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.54%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Chartered Professional Accountants, Licensed Public Accountants</p></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.54%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.54%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Toronto, Canada</p></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.54%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">March 2, 2022</p></td><td style="vertical-align:bottom;width:42.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:1pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">7</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_36ff917e_8b99_4676_aee4_6936892ea5a7"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</p><a id="Balancesheet"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">CONSOLIDATED BALANCE SHEETS</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt 0pt 12pt 0pt;">(US DOLLARS IN THOUSANDS; US GAAP)</p><a id="_6bea2a2c_c242_4aba_8129_3df778f30043"></a><a id="Tc_WI0gTWSOikK56YMDzO9FWw_1_2"></a><a id="Tc_zuRZbDhXv0awHqw2BrTWyw_1_4"></a><a id="Tc_LigQpazp2kmw7wtSMb835g_2_2"></a><a id="Tc_EmfvvAR0kUu4Sqa8eNGUxw_2_4"></a><a id="Tc_ateE3jcjyEOQBshLWSANMQ_3_0"></a><a id="Tc_M1nVv4sI_0eNFMc-zpbQww_4_0"></a><a id="Tc_gh8UsOzc-UuwhcC6UQx_gg_5_0"></a><a id="Tc_9ebnLFmRIUS8K3-7Q-9L-A_6_0"></a><a id="Tc_aokakF6GQ0-13P2nqkdJ4A_7_0"></a><a id="Tc_675mszXy8UCfbzEwINHSVA_8_0"></a><a id="Tc_lJcpFDLsskmu0mnaufcyFw_9_0"></a><a id="Tc_-zi-hPbEwU2LbDZqOhrA5A_10_0"></a><a id="Tc_1cbcnHxM70-Yh0vnprexUA_12_0"></a><a id="Tc_sqB5Prq7gkWMgrDNKnTPgQ_13_0"></a><a id="Tc_HBND0MfHmUqg3ed6y0FW8Q_14_0"></a><a id="Tc_92lcnwi460-jrkI-yZYFqg_15_0"></a><a id="Tc_igt2S6y8-UeKAkx-t3bBjQ_16_0"></a><a id="Tc_eSmzZKpZ20yr0Xgkvv5kUQ_17_0"></a><a id="Tc_tXOvq08VjEyvGgCAlQi-5A_19_0"></a><a id="Tc_56tbjnIKt0G9QcGh7RezQQ_20_0"></a><a id="Tc_RLY3vEs2lEG_NV6II5yZlA_21_0"></a><a id="Tc_47651HCRl0KfvTtUzrzVwg_22_0"></a><a id="Tc_NfaDzzoHaEKnQEpYjOV-iQ_23_0"></a><a id="Tc_QcD80X0sh0eDXgdv3PC0bw_24_0"></a><a id="Tc_z_Sh4Ym1JUmqyg9bdXJXJQ_25_0"></a><a id="Tc_TDEmrQTh-U6oJ4cZFcXKwA_27_0"></a><a id="Tc_4b1gD8Hcyk6Y7p079C-HSQ_27_2"></a><a id="Tc_1hRoekrVh0eEeKPXXdG0DQ_27_4"></a><a id="Tc_mVG-BrOYukq2Rycyrpufsg_28_0"></a><a id="Tc_XSLWMxHnN0KROckuNpKDMw_29_0"></a><a id="Tc_i8-KhcNqzUigd_T0BJaFDg_30_0"></a><a id="Tc_FvAZigpYrk-WsVw7VcZ9bw_31_0"></a><a id="Tc_7zRzpZ4ROUuobJtviwJyrA_33_0"></a><a id="Tc_WuFh6JEdq0qUx_k7E7a_Sw_34_0"></a><a id="Tc_Z3ryoBMKcUO23rb6gz6qSg_35_0"></a><a id="Tc_SzZevLVyLEWPg81h_6bMEg_36_0"></a><a id="Tc_D5uOeFZVrkWJz_NzKqqZbA_37_0"></a><a id="Tc_Y1709sm2T0G-v3ma6xmKuw_38_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:73.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="Tc_sX6rlRLnXkyx13SMZD0Cug_5_2">213,437</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="Tc_V_BKgBF8AUmgLoCPM6-2Vg_5_4">133,661</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Trade (Note 5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_W09GlydGzEKDNEuFBVxWLw_7_2">41,705</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_xTt-a43rfUyCx0rWiXmdFg_7_4">37,206</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Other (Note 6)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_JpTcxs94MUOoyy9pNXP6EA_8_2">14,075</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_q0Jx9VOO9k235tCVEi7v0w_8_4">14,830</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_bCfxoHCTBk-m6cT106PlPA_9_2">21,974</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_tqRgEKKvG0mkwj7hByQzTw_9_4">16,939</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Inventory (Note 7)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="Tc_5PPd2FirxEKUVqQe9psbIA_10_2">868</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="Tc_rxq5nwBCX0Wj-bgjc1HcHA_10_4">429</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="Tc_GR3QpMPt_E2AVps9IqVlWw_11_2">292,059</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="Tc_EBFfrMCmIkyfuEXu6GwvpQ_11_4">203,065</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">OTHER LONG-TERM ASSETS (Note 19)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="Tc_OuhqEcZdcEqEULqZ_i6dYw_12_2">18,652</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="Tc_UJ6w0EvL8U2Qydx_QPi01Q_12_4">15,550</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">PROPERTY AND EQUIPMENT, NET (Note 8)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_C0O7Bu5iS0SE4Y6LBeFkIQ_13_2">10,817</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_hk0YaJQ9LUSsOQMeqrDxNA_13_4">12,089</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">RIGHT-OF-USE ASSETS (Note 13)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_xJCP52u1lkOx-tynk59L6Q_14_2">10,571</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_-ytAt2cFnE6H9si-uqpnPw_14_4">12,165</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_RmKy1B1720WMQm42Oz846w_15_2">14,962</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_Niyx8O2AM0yGPwwzXgfL_Q_15_4">15,216</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">INTANGIBLE ASSETS, NET (Note 9)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" scale="3" id="Tc_wNivDzcsaU-tC6AsqteHxg_16_2">229,609</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" scale="3" id="Tc_0bLOeLO1Uk6RxKO3wBEHtg_16_4">239,992</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">GOODWILL (Note 10)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_Gfd0UNqpTUWXNjMvKGoMoQ_17_2">608,761</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_sujD4dLkFEySEIJ9u91u8g_17_4">565,177</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_H5svJPgtmEeiLXzX4J1Gbg_18_2">1,185,431</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_hhDLFLJy7EitX5COL6Nkgw_18_4">1,063,254</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">LIABILITIES AND SHAREHOLDERS&#x2019; EQUITY</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="Tc_3jdJwpfgmEuS9v9fH5KScw_21_2">10,566</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="Tc_963qPEZG7EyyjKGRJo71JQ_21_4">7,955</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Accrued liabilities (Note 11)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_vpGM010kT0Ktfen0XPjyRA_22_2">56,442</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_8G9vC0d98kmOohpLhYK2MQ_22_4">38,879</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Lease obligations (Note 13)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_yLAHEO2TxEuGAGrSu6WenA_23_2">4,029</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_WHIAYTmzG0O4ehcyamTKMw_23_4">4,168</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesCurrent" scale="3" id="Tc_9Ovvr9vFxE6sx4yyZeUHDw_24_2">5,616</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesCurrent" scale="3" id="Tc_4QjN0cD6MUK5H-feUcCkyQ_24_4">3,383</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Deferred revenue (Note 19)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_WeFF42lkcUyuq9lK5V40Rw_25_2">56,780</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_Gel41IhJtUm4Tjbg37ayRw_25_4">49,878</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="Tc_s2N5kLFrn0CG-JTnmh0pfw_26_2">133,433</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="Tc_t41MNQfCz0ejJTP9C2PsKg_26_4">104,263</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">LONG-TERM DEBT (Note 12)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">LEASE OBLIGATIONS (Note 13)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_p0-WJk5hF0SUNOdQjVZ_OA_28_2">7,382</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_WZLiTF9TsUOgPKXPYbUQDQ_28_4">8,895</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">DEFERRED REVENUE (Note 19)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueNoncurrent" scale="3" id="Tc_xhVWlB7tcE63V5p5uzRkwA_29_2">1,920</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueNoncurrent" scale="3" id="Tc_ZxZfzr9huEiMuxSNOyloPw_29_4">1,413</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesNoncurrent" scale="3" id="Tc_vau1VAmZDUae-QdVa5Fw7A_30_2">7,354</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesNoncurrent" scale="3" id="Tc_BR7KMCF8XEmyf-zr1-JRSg_30_4">8,230</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_eZh08BN2Rk-k-fkup_BvAQ_31_2">35,523</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_ib534hMTqEec_lo9jgiOAw_31_4">29,385</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="Tc_xaTVLRZV506WF9ng9cXwjQ_32_2">185,612</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="Tc_mAZ_kpSGKkyv_5F-4JfUBw_32_4">152,186</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">SHAREHOLDERS&#x2019; EQUITY (Note 15)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Common shares &#x2013; unlimited shares authorized; Shares issued and <span style="-sec-ix-hidden:Hidden_oTuJBvmFPEiJzwnT12xkUA;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">outstanding</span></span> totaled <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="0" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Narr_Br4Cd_0r4k2OK3ksCK0zBw">84,756,210</ix:nonFraction> at January 31, 2022 (January 31, 2021 &#x2013; <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Narr_sgZ3I-FOIE2qmcx7_nBYmw">84,494,658</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockValue" scale="3" id="Tc_abyNbT0a1k2dANkimz_YKg_35_2">536,297</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockValue" scale="3" id="Tc_OPhFQN32OE6AsIUZnbcNHg_35_4">531,825</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="Tc_dUWzZZiR5ky21JHihs5VdQ_36_2">473,303</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="Tc_J2XM7ah1ckWHkZIO6uFSQg_36_4">464,102</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Accumulated other comprehensive loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_lHuCUnWVWUSjYV_w90kTIQ_37_2">12,393</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_PXGbGHQ780uC7HMoPOMZwA_37_4">1,189</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Retained earnings (accumulated deficit)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" id="Tc_nOpShL64nUuK1Gqh3l_8ww_38_2">2,612</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" sign="-" scale="3" id="Tc_r9DB1rEIzUOYDgOFzZqQ7A_38_4">83,670</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_w3uAhRYHcU2h9lRV8x67WA_39_2">999,819</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_Qh-MLnNzf065rYr1Uonlqw_39_4">911,068</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:73.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="Tc_nnHnKogKRkOYjHu9tavC4w_40_2">1,185,431</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="Tc_jLaO29cZXkWRyB3NJ6FvuA_40_4">1,063,254</ix:nonFraction></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">The accompanying notes are an integral part of these consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">8</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_a308a66a_9b7b_408f_9a10_810eb5da219d"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</p><a id="SOP"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">CONSOLIDATED STATEMENTS OF OPERATIONS</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt 0pt 12pt 0pt;">(US DOLLARS IN THOUSANDS, EXCEPT PER SHARE AND WEIGHTED AVERAGE SHARE AMOUNTS; US GAAP)</p><a id="_88c78bf2_4dea_4862_bef5_4b6a41146377"></a><a id="Tc_dv45nTNH4Ee-ExG93Az8oQ_1_2"></a><a id="Tc_-_knfNu3Qki6UIHe-PmbYw_1_4"></a><a id="Tc_z9rvTkfzT0WCAUHKIHKB-g_1_6"></a><a id="Tc_k1IqxCdo4EioFIZcu3zQCg_2_0"></a><a id="Tc_ECCetuX1hUOp9B5U9zRaFw_2_2"></a><a id="Tc_a6rYZDDTv0ulKkLAAPx34w_2_4"></a><a id="Tc_6PAy8h6KxkShkdGIh-GUkw_2_6"></a><a id="Tc_IhzaKYgeo0GOIDWrhy1Gwg_4_0"></a><a id="Tc_hkOopN3ik0uqHkTIP8U9tw_5_0"></a><a id="Tc_4B6q_QXUckeQn5CSXyH-ow_6_0"></a><a id="Tc_sAHuyH8h-0WIcX55TLtMXw_7_0"></a><a id="Tc_uZtVKEQmy02tKnro96Aoyg_8_0"></a><a id="Tc_cF2rDZNxukK0lv_nwRkiww_9_0"></a><a id="Tc_aJgj55EVmkq0IL4A_-cHOQ_10_0"></a><a id="Tc_-2r2pMbtxke6tqD2NqMKhg_11_0"></a><a id="Tc_bfF0E1GU8ku0MRN-7Wcu_Q_12_0"></a><a id="Tc_e6nRo_4N3UGwd80ep_KVZA_14_0"></a><a id="Tc_bdIiBA4blUezXQQ4hXeOSA_15_0"></a><a id="Tc_oi-VFY4weU-BZZ6jnsXCAA_16_0"></a><a id="Tc_Vq4q0l2TiUWbjQ5ffamtkw_17_0"></a><a id="Tc_TkHJ1LUklE2863Xqs1HOuw_18_0"></a><a id="Tc_5okfDV5NrEiVlr-_yJJGEA_19_0"></a><a id="Tc_fAUzr8xTUEurXqQFVHa7vg_20_0"></a><a id="Tc_nHmlHn2lPEWyRzP2QSRY7A_22_0"></a><a id="Tc_RhA9kxwkL0mGantB2QAzGQ_23_0"></a><a id="Tc_xxd2_EKNCUiHPtEejDn9zw_24_0"></a><a id="Tc_2BiKNW1hHU2iS45XiGuOPA_25_0"></a><a id="Tc_ag4EqXxP4Eaulx0tlL0pSg_26_0"></a><a id="Tc_JN5ycUqk6kiwoHqtylEv0A_27_0"></a><a id="Tc__4wa8k6PCEecYvnI4DHOBw_28_0"></a><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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#2f5496;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#2f5496;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#2f5496;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#2f5496;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#2f5496;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#2f5496;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#2f5496;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">REVENUES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_75UtIgbdCkOs3LhOLjqL5Q_4_2">424,690</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_uwTou7suhUGagHciVvwACw_4_4">348,664</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_zVuJRIDdLUCKEKObguiTog_4_6">325,791</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">COST OF REVENUES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="Tc_DNHuZQdoJ0GbS6TS4tcOCA_5_2">101,810</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="Tc_g4JFyOgJNkOt3RqbK_L_2Q_5_4">89,910</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="Tc_P1MLxeREGUGuVIOKpl6Erw_5_6">85,721</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">GROSS MARGIN</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_re6NmXH8PU-NPh4UclRlFw_6_2">322,880</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_TJdYs-a1Y0avhgIiHuYTwg_6_4">258,754</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_7axbgWBV4Eyxty0jBIL76Q_6_6">240,070</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">EXPENSES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Sales and marketing</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingAndMarketingExpense" scale="3" id="Tc_mBE2_v1xD0-yiTLvDf8Ytw_8_2">46,895</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingAndMarketingExpense" scale="3" id="Tc_o_zPqIGPKU-r22eIPohfyQ_8_4">38,785</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingAndMarketingExpense" scale="3" id="Tc_cfudgjVtWECSam4-2c3rxg_8_6">40,389</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="Tc_ffdx2jTj6EuOm5lScOv7YA_9_2">62,570</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="Tc_YNdapQdN8U-r9p0cbnY8vQ_9_4">54,066</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="Tc_OTu0kuI0GUWUAepIc_56vQ_9_6">53,513</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">General and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GeneralAndAdministrativeExpense" scale="3" id="Tc_y8SzFnIhUUGyo0htKV4XHA_10_2">44,454</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GeneralAndAdministrativeExpense" scale="3" id="Tc_qdguXq9-4EW-3ncTNg9TsA_10_4">36,267</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GeneralAndAdministrativeExpense" scale="3" id="Tc_IWw7SryPL0SvrGUyTB_KQQ_10_6">34,628</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other charges (Note 20)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingExpense" scale="3" id="Tc_fDKkmgND4EK__vZ-VApVqg_11_2">6,428</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingExpense" scale="3" id="Tc_oWvCZk7wbUGVY0DlG-Bziw_11_4">2,335</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingExpense" scale="3" id="Tc_orVOctGxq0ej6zCbrNYqfQ_11_6">3,797</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Amortization of intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_Y5zGDx609USuT0aMVMcQcw_12_2">59,099</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_zH4fv0HGRE62kPDXB0jbog_12_4">55,905</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_JWZiYD0zmEGttQnrJndhNA_12_6">55,485</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingExpenses" scale="3" id="Tc_8dxqZNKS7UuK2vW9366qbw_13_2">219,446</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingExpenses" scale="3" id="Tc_L2eGzcXVA0yPQMKZ874DCw_13_4">187,358</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingExpenses" scale="3" id="Tc_KT2tyreF0ESfBcLWjFppWg_13_6">187,812</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">INCOME FROM OPERATIONS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_gPAPtYVNuEy_nSMW-hPLaA_14_2">103,434</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_kvnZfzebXEGSGVg_373bSA_14_4">71,396</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_nwCuH7MSa0-dfOtto0DivQ_14_6">52,258</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">INTEREST EXPENSE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_3fbD2_sJf02YTTEv_uCwtw_15_2">1,123</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_n52jKhV8tkm-hL_MR1TMXg_15_4">1,186</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_darqKUf1XUuVqMTEuTniGg_15_6">4,416</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">INVESTMENT INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeNet" scale="3" id="Tc_pUGXNlMaVUW_JRPTh8GfTw_16_2">299</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeNet" scale="3" id="Tc_zRhjm3wgl0mciVyN2b9oJg_16_4">159</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeNet" scale="3" id="Tc_f_fgQA3jY0u3Z21ouWqI9w_16_6">193</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">INCOME BEFORE INCOME TAXES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_yVkTdFt-W0eLEPZrter2Xw_17_2">102,610</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_7e3Qe4AJvE-qUtKJfQ9IGQ_17_4">70,369</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_ok42GGnc0ECeGE--EYAcmg_17_6">48,035</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">INCOME TAX EXPENSE </b>(Note 18)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_792tZz3uQ0iqpG2Y10eNPg_19_2">14,814</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_OH3Iero5r0m_L_h8mS7_bQ_19_4">3,746</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_3Y0sfAfbt0uql4ephFr6fQ_19_6">5,295</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc__UU7OrwA8k61EvtTcwJNYw_20_2">1,514</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_eJ1OwZFaVUa9K25FWqE9xA_20_4">14,523</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_xN-3CPo2G0icGSjUduUjvg_20_6">5,743</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_FDqf-608Y0eGdBNDCdsMQQ_21_2">16,328</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_3_V3wLA1TEijFqzRnlobng_21_4">18,269</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_8J9ksnY4ZUa3Z-FaHHrC-Q_21_6">11,038</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">NET INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_-o7eVmMMnkCJNO3AHnwHFQ_22_2">86,282</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_g1gw3nNRykCR9D4NyqaTow_22_4">52,100</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_x6uvw83YRkKq1rYglqetew_22_6">36,997</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">EARNINGS PER SHARE </b>(Note 16)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_Z0OI6Ioy20u93zhCU8qkow_24_2">1.02</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_jZzUOnxY50WZMkj1E61bIg_24_4">0.62</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_lIqD-NmYSE2d0gsE4pP1Lw_24_6">0.45</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_o6IEgyE4mkyga7cVHUl5ow_25_2">1.00</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_oc3fBNt4K0awmLFYOJ-ZXA_25_4">0.61</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_tAE1BMCwnku_mlmtzJBuvg_25_6">0.45</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_UhBLzxZY60GNk9EQsi5Y3Q_27_2">84,591</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_aHfx0Quv0UK-T6Kjd_BSSw_27_4">84,360</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_6SnE3V34vkKOdlZFsWHBNg_27_6">81,659</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_xyW2m7TetkObEut31M2ZxA_28_2">86,200</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_JLzAXr1EnUSOs12F9jPG2Q_28_4">85,756</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_sIMgm1xgAkysrWc-zlYcRw_28_6">82,867</ix:nonFraction></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">The accompanying notes are an integral part of these consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">9</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_a4402c0f_4960_46b7_b209_6aa7dc9f912f"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</p><a id="Comperhensive"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt 0pt 12pt 0pt;">(US DOLLARS IN THOUSANDS; US GAAP)</p><a id="_4e86b710_9131_4999_907f_f153d083e960"></a><a id="Tc_EFb0TrU2Sk2OSjO3hGXZwQ_1_2"></a><a id="Tc_Mv0FB-vCS0GvJA9yyeEyTw_1_4"></a><a id="Tc_cnQd1_msqk6zCBhxjyUHrg_1_6"></a><a id="Tc_0QetPWbtUkyzQGDqipviHA_2_0"></a><a id="Tc_ln0jBRFPK0Cr45AjBIexxA_2_2"></a><a id="Tc_j-RGY27eCkCLH38DzvHKdg_2_4"></a><a id="Tc_EWGSPRg2MEG7Yh5LVh-XKg_2_6"></a><a id="Tc_DVAsVul8CkiBTmw-jPMCLw_4_0"></a><a id="Tc_vq28bnKbhEiFKEbb3nMSyQ_5_0"></a><a id="Tc_VxR_FdS5_kOycI91uLIG1g_6_0"></a><a id="Tc_FAuZTGaenEGflJA19Mel9A_7_0"></a><a id="Tc_t2oW6wGGFEa0aYJMRGaTMQ_8_0"></a><a id="Tc_bSkWjYI_JUK3ZtoLe_X_Jg_9_0"></a><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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#1f3763;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#1f3763;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#1f3763;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#1f3763;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#1f3763;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#1f3763;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#1f3763;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Comprehensive income</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net Income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_DHGtfCH7dUK7U3RD3TxRpw_5_2">86,282</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_rw1MUzZIuU63693nmBCYlA_5_4">52,100</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_5wYhP-ukjkqV60XOOiKNAg_5_6">36,997</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other comprehensive income (loss):</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Foreign currency translation adjustment, net of income tax (recovery) expense of ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" scale="3" id="Narr_yemUmwKhek2FNbnIzIRxLA">348</ix:nonFraction>) for the year ended January 31, 2022 (January 31, 2021 &#x2013; $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" scale="3" id="Narr_c6szyhOtVUmuv9dmPPA5Vw">290</ix:nonFraction>; January 31, 2020 &#x2013; ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" scale="3" id="Narr_-7lZ8X8PwEaGE3MgBZ40uQ">132</ix:nonFraction>))</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" sign="-" scale="3" id="Tc_JM_iAJ1fCEm0vikPaUbTHw_7_2">11,204</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="Tc_0XyqL30y5U6dbxg5E_mIIg_7_4">24,755</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" sign="-" scale="3" id="Tc_gF9sTq6atkGgXNN8-7ZR4A_7_6">743</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Total other comprehensive income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_UOjYu9KpVEq9slhXheotUw_8_2">11,204</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTax" scale="3" id="Tc_wXJCwr-COku2_Xd2tzkLhA_8_4">24,755</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_w1_IbtsvnUW9Fbsm2dtEig_8_6">743</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">COMPREHENSIVE INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="Tc_eVhbBidouk6arq9Dr6ucxQ_9_2">75,078</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="Tc_7d-yM645Bkq5cPyG8hPOHw_9_4">76,855</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="Tc_osGt0RUZSU-H1aQJxLnddg_9_6">36,254</ix:nonFraction></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">The accompanying notes are an integral part of these consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">10</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_829be502_4556_4aa2_893c_e0bc0e41300b"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</p><a id="Equity"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#x2019; EQUITY</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt 0pt 12pt 0pt;">(US DOLLARS IN THOUSANDS; US GAAP)</p><a id="_03251654_2a29_45f2_8e5f_b862e29d325d"></a><a id="Tc_sfSfqHLMlEqukoXqXUbG4g_1_2"></a><a id="Tc_6XjrptJwrUmPTr4imVd37g_1_4"></a><a id="Tc_8Pt4PYGBdUmRC-aQ443JDQ_1_6"></a><a id="Tc_rEesJhpnJ0ysTp1vRPjo1A_2_2"></a><a id="Tc_JZJV-Ei_rU-RjnXw1NGpLQ_2_4"></a><a id="Tc_pLKbEla2B0qeDNwlZhx20w_2_6"></a><a id="Tc_avuzgWgwSkyd-zgWno_LsA_4_0"></a><a id="Tc_zDxArwQ9GkSxWaoW7ubmXQ_5_0"></a><a id="Tc_-7iqOOaepke9nhAfWqW06A_6_0"></a><a id="Tc_ZaT1MbXFEUWlFXptZmFo6A_7_0"></a><a id="Tc_wVPN9optQkywoYLZ2hQa9w_7_2"></a><a id="Tc_yTjDnlvPGkyVQd0xnnUAYA_7_4"></a><a id="Tc_uoFWRzSfS0Cz4f_khePdLQ_8_0"></a><a id="Tc_O9Jblc-lrkeftAATwjjy_w_8_2"></a><a id="Tc_2zVGcGKLrUuju3wJJVfpDQ_8_4"></a><a id="Tc_62ZmtPvOJUOFe5BDJoakpg_9_0"></a><a id="Tc_lB2HWseLdkSqnBZ-kwCIkA_11_0"></a><a id="Tc_nh8Mjq3Q5E64ZqtNRUDFqg_12_0"></a><a id="Tc_XinwVvHTq0CYRVW-5phOaw_13_0"></a><a id="Tc_5_RaNRF-_UO5nrbl5PIUtQ_14_0"></a><a id="Tc_L1ihZSU6_E-HJP_H4d_VYw_15_0"></a><a id="Tc_0-S-Q95dUE2loT_GAkDAyA_17_0"></a><a id="Tc_i5T7NbrYg06Ya4MmgQpm9g_18_0"></a><a id="Tc_SLwm4qgg3kChRO2PS3IwoQ_19_0"></a><a id="Tc_OFohISjq9U-Dinqjw5_Z8Q_20_0"></a><a id="Tc_L3YyYRVtbUizagga2_HPYw_22_0"></a><a id="Tc_Z3UkmdwHL0qjq_jB7R-UMg_23_0"></a><a id="Tc_DMJRw0TcekCBO1MDyNe1qw_24_0"></a><a id="Tc_Jv4WStOW7UCBw3FjXpvSiA_25_0"></a><a id="Tc_-XMV8YRETEyk4QjXZxNq8Q_27_0"></a><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:60.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Common shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance, beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_4hAMxiTAoUetR67y6OzN9Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_knSvR7nhIEe2snwIYiyE5w_5_2">531,825</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_Z2f9Xp48hUGeQW4tvacMlg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_8JORWkomo0O2HNEKAerNLQ_5_4">524,154</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_uILb96-R5U-JARfsjROcqQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_94vIJ-bUcU6OECutzw1epQ_5_6">276,753</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Stock options and share units exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_mfIYXhgIyEutGPk9clKJUg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_mYDx_6svCUmcqLXPUyIRcg_6_2">4,472</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_QIs7W9xyCkuO8AzVgnZu3g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_usHd-7N9PUWD-mk8HFkODw_6_4">7,671</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_TausbxT04kSdrcoQckjP_A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_GfiIb-Vg4EqUOCrUGFpI6w_6_6">1,788</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Issuance of common shares, net of issuance costs (Note 15)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_TausbxT04kSdrcoQckjP_A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" scale="3" id="Tc_ammrAmcAvkCEd2jCnRMlUw_7_6">236,568</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Acquisitions (Note 3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_TausbxT04kSdrcoQckjP_A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueAcquisitions" scale="3" id="Tc_jCVN4NJahkOAQ69PagEiPg_8_6">9,045</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance, end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_AHDzDBNNwEKdzsCpyCG1xQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_Y49bVgSZRk25kS12B1vbVQ_9_2">536,297</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_4hAMxiTAoUetR67y6OzN9Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc__n27Y3q9fki5D9yYKkgaUQ_9_4">531,825</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_Z2f9Xp48hUGeQW4tvacMlg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_-v-Lo8TZNU2oGF4KEHtZUw_9_6">524,154</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Additional paid-in capital</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#1f3763;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="color:#1f3763;">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#1f3763;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="color:#1f3763;">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#1f3763;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="color:#1f3763;">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance, beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_OOQKiMlEGE2aJSEwD48vRQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc__5hyTaGQV065w218u1Chig_12_2">464,102</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_olNbahUDQU6XjkvjTgYGmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_5V4ZjlA3eEqkg0RcEu_t-g_12_4">459,269</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jvhlfo0xuUS0JRb6sAjEdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_qUWFUqkNL0uJEMMIUyxXwA_12_6">454,722</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Stock-based compensation expense (Note 17)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_BrRAvzRdC0KOXdi8b39Vcw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_EH_P9KzYC0O0RBOU0bhipA_13_2">11,017</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nJijUlDHfE2mcW48hAEXwQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_HRjkgxkiekGqIQ3tqZ1S5A_13_4">6,313</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_eoj-x1FNVEeX-g8-deMtaw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_sRCytUupp0ujFfF8XSCaDA_13_6">4,909</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Stock options and share units exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_BrRAvzRdC0KOXdi8b39Vcw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_5Okvs7XESEiBfRmWBKA_hw_14_2">1,816</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nJijUlDHfE2mcW48hAEXwQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_OK6eC52IsUOAlY8-PTQVBg_14_4">1,480</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_eoj-x1FNVEeX-g8-deMtaw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_YXBHs5rhe0mYX-8MZPRCng_14_6">362</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance, end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_xtKcHXK14km9wzwjAcFOzg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_CZ6xHO_PdkCdH6IP1SQpFw_15_2">473,303</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_OOQKiMlEGE2aJSEwD48vRQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_KI6VTzhyVECYT_gE5RbzRQ_15_4">464,102</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_olNbahUDQU6XjkvjTgYGmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_9i5nSFOvCki5sLEKHGB7RA_15_6">459,269</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Accumulated other comprehensive income (loss)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#1f3763;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="color:#1f3763;">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#1f3763;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="color:#1f3763;">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#1f3763;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="color:#1f3763;">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance, beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_Wz9iH8wYd0O-Fu6ZdBYLBA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_Ght096_DgUqfkUVq-cHdDw_18_2">1,189</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_A8gi74q9xUKVG3uPnmO1Qg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_rYxzaGqmFEGkAL_ymtacGg_18_4">25,944</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_tdOf6WBla0SheUcR2Mm5NQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_OyNMqlq1Skq4vMsVwyrLvg_18_6">25,201</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other comprehensive income (loss), net of income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_12ucPReGf06Y2zWrjoJYHg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" sign="-" scale="3" id="Tc_ShAO0DM-w0CiOoeJaOIl7Q_19_2">11,204</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_sxp2ND6Lz0-6_yRAr2_0iw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" id="Tc_z-P7EQ3OBE6iT4CeYla6nw_19_4">24,755</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_5n76_Ec7VUy6Fl_01TXv2A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" sign="-" scale="3" id="Tc_tctYRpg5zUiDvnD62xcQXQ_19_6">743</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance, end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_7CYQONsmVUWWo6uaQqO1eQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_xw6CJS90Ik-l0XoNHV8ecg_20_2">12,393</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_Wz9iH8wYd0O-Fu6ZdBYLBA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_J8FUBe-3dku_8piIGqtoow_20_4">1,189</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_A8gi74q9xUKVG3uPnmO1Qg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_3OBhF5xKxUK3eP93wZMQXA_20_6">25,944</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Retained earnings (accumulated deficit)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#1f3763;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="color:#1f3763;">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#1f3763;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="color:#1f3763;">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#1f3763;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="color:#1f3763;">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance, beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_gP_9T311zEGHA0dmiVT16w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_CES-W-hS-0uqhvKyf7GeCw_23_2">83,670</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_oaO7TzfnxESITGUtdBa0Xg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_Rk5ds-yEekGJ3YENfT9TyQ_23_4">135,770</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xXAHuj9_7kumbyLN3SnhBQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_LIHhGbBnckmDx8a-395f4A_23_6">172,767</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_OjLJ9SGrykm8RexqufFiSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_PCcVEsbsUkqwRuz88U3c5Q_24_2">86,282</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_piMSALILw0-3-Lt6TVCDSg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_xNZELncDSkmtDBHc1mCKSw_24_4">52,100</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Z5yZxRLcU0CuWU92iGfJJA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_MQJGLnX43kqlL1ZqjQ0SKQ_24_6">36,997</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance, end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_0NJb6Rrf9E2XDSzf7H6-Mg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_xuwAc-qYQkGllhsVDzYOAg_25_2">2,612</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_gP_9T311zEGHA0dmiVT16w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_33XcOce8HkO4S-OpAlt4Lg_25_4">83,670</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_oaO7TzfnxESITGUtdBa0Xg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_UZtET0UyDEOSh9ubRnSa4g_25_6">135,770</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Total Shareholders&#x2019; Equity</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_d9gto_jlrkChlxiBynr_YA_27_2">999,819</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_KjYk1WyGIkmuRXZexIrFow_27_4">911,068</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_A1t6gLjZNkWUK3gSyz3hFA_27_6">821,709</ix:nonFraction></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">The accompanying notes are an integral part of these consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">11</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_581d2d47_de2f_4bd4_8416_cd4e507fa3c8"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</p><a id="Cashflow"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">CONSOLIDATED STATEMENTS OF CASH FLOWS</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt 0pt 12pt 0pt;">(US DOLLARS IN THOUSANDS; US GAAP)</p><a id="_acdf40fb_5679_4a26_bf9a_0979de5cd5ba"></a><a id="Tc_GVxmW8CIqEKHch2KIb2lPA_1_0"></a><a id="Tc_IhG_zptddkuN0LopYjHU7g_1_2"></a><a id="Tc_52SwTPKO4kalDQKy7Vb2OQ_1_4"></a><a id="Tc_wTEt-GIu_0iPc3BYVEzyVA_1_6"></a><a id="Tc_K9QPkYiWd0SvMXGGul3x7Q_2_2"></a><a id="Tc_4-Z-xzSveEOb8xEeMg-X8Q_2_4"></a><a id="Tc_dB2pvfa4eUGLQ6xTHXddHQ_2_6"></a><a id="Tc_7p030DRirEaBHi8gfC3mtA_4_0"></a><a id="Tc_OZ_4OcdD9EesUOhuAaOb4w_5_0"></a><a id="Tc_BSCjAfjrYkmIQyIkNA9Auw_6_0"></a><a id="Tc_xYU7z0bLb0GpN60YkQc0qA_7_0"></a><a id="Tc_0alZA-JXc0iI7gKLHxRsEg_8_0"></a><a id="Tc_MnJC2oYZc0CVBoufUYQ99Q_9_0"></a><a id="Tc_zBgPHSwIWECmvUURtwKuoQ_10_0"></a><a id="Tc_2D0I16k6-EOXeaIQ7bg9Rg_11_0"></a><a id="Tc_VfnIzem4iUyXarvQngCAKg_12_0"></a><a id="Tc_nD23s2d2vUOP8B-6aWd2SA_13_0"></a><a id="Tc_64nTorGsnkiZyTSg3uyuLw_14_0"></a><a id="Tc_mGTSNDfeOEyVlWGENpKBpQ_15_0"></a><a id="Tc_H7mfze2oQU2DMsjakcDj-g_16_0"></a><a id="Tc_2QoJT7meA0CstzaXpnJOng_17_0"></a><a id="Tc_G-4h2QDo9EelAsDNowBi9Q_18_0"></a><a id="Tc_UfplZmn9UUGBg4I5lpmyfA_19_0"></a><a id="Tc_MCaJGzqgVEy7VIHTluBaKw_19_2"></a><a id="Tc_dpm2e-19pUGDTmH4aYtaUg_20_0"></a><a id="Tc_zEQBgKME1EuKh1L7iBjT-A_21_0"></a><a id="Tc_Go9id15_wEa7qXR-Mkl7-g_22_0"></a><a id="Tc_eW1TQSmB8kWQxaFp-vDFwg_23_0"></a><a id="Tc_KMu1AVUwJkqmg6mYzlCM4Q_23_2"></a><a id="Tc_hXikiqQC9E2I5tShikYeyQ_23_4"></a><a id="Tc_m3FIQfPDL0OqwwUwW0Hfyg_24_0"></a><a id="Tc_5ysHiCdsLEOx-woncr8YWg_25_0"></a><a id="Tc_q569aMqWUkOXSAuNIUsS0Q_26_0"></a><a id="Tc_wzTggzntukWYftLOjaZqIw_27_0"></a><a id="Tc_ubvclZi-GUi0C6J6PiH_qA_28_0"></a><a id="Tc_8K4v3gDZDU-KiTHGDg0kJQ_29_0"></a><a id="Tc_uvXk9PTf-UuuJA-vOJvNwQ_30_0"></a><a id="Tc_u7zxjdlBkUqF-Wu9mbGe0w_30_2"></a><a id="Tc_C8-RhVRAEkaP3iRIWpLoNg_31_0"></a><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:60.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">OPERATING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_Io-uam5K9EanpSp-rzx21A_5_2">86,282</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_myP_yRYULUuS0Leu_-z7HA_5_4">52,100</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_fPD5afNv6U-TYgTY3rRpQQ_5_6">36,997</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Adjustments to reconcile net income to cash provided by operating activities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_CdazaD_swEiSJnxAzvu0xQ_7_2">5,129</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_eyOnJYBEl0aVUaG_OqjNLw_7_4">5,757</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_qOZXrGlBi06bUah3uQxYwg_7_6">6,037</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Amortization of intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc__5HxmBtf-kCv298e4N-I0w_8_2">59,099</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_C3TQtHDE6EOVklBd84Beng_8_4">55,905</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_Og_x9g8Mc0CeInFupos8xg_8_6">55,485</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Stock-based compensation expense (Note 17)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_zu-EBNWBqk-HztAjCpDGpw_9_2">11,017</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_bTyY4mp-vE6t7eXFiWEVAQ_9_4">6,313</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_JUMs1itax0K-Gp123_ip4g_9_6">4,909</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other non-cash operating activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNoncashIncomeExpense" sign="-" scale="3" id="Tc_oKwkTfH8ekG28VykfGjQnw_10_2">308</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNoncashIncomeExpense" sign="-" scale="3" id="Tc_DZ1rTrjO3UyV2niwSQctHg_10_4">207</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNoncashIncomeExpense" sign="-" scale="3" id="Tc_xiyUo5mD-kuG7CAb52A4aA_10_6">337</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_yFBanbI1Iki3nku7r8PPlw_11_2">1,514</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_El4y0CFC9UaoJ7g_gC10BA_11_4">14,523</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_gbvgdi16A0CiLYdOj2P4-w_11_6">5,743</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Changes in operating assets and liabilities (Note 21)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_7aBGANh4L0yLFbXg2jJIwA_12_2">12,789</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" scale="3" id="Tc_0PCTh2K_u02c8UgEGhiYWw_12_4">3,575</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" scale="3" id="Tc_C52MBqqGT0-zOT3F19KipQ_12_6">5,256</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cash provided by operating activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc__2suwVHG6kCMAbL-IrLuqg_13_2">176,138</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_6e2Nw2vqRUmJMEs6x5OJjw_13_4">131,230</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_ROIj_pmWnUq8ECaztLnnjg_13_6">104,252</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">INVESTING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Additions to property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_MO_S8wSjMEOn2h6azT0dcA_15_2">4,829</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_eyFmo3eiXUerfxGv2UZtiQ_15_4">3,759</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_h_BfT0blFE-w6UAlGB45qQ_15_6">4,900</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Acquisition of subsidiaries, net of cash acquired (Note 3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_r7i8DlzD-0-EPbeQhpmUAA_16_2">90,278</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_lVAyAg4ENkKpmLg95vbO9w_16_4">48,403</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_GBbD7m_Fv06xBsePOiznLg_16_6">292,053</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cash used in investing activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_Z_AZmg31W0O0xyCKLJ8HqA_17_2">95,107</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_lU3I0qst70e_CC3uTpUclA_17_4">52,162</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_XvoNuUPtSkSL3eucYjoKRQ_17_6">296,953</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">FINANCING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Proceeds from borrowing on the credit facility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromLinesOfCredit" scale="3" id="Tc_znTkAKDNzUiuEpHuLUhLyQ_19_4">10,196</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromLinesOfCredit" scale="3" id="Tc_ps9Y1n9oXk-gnc2aAacXIg_19_6">297,015</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Credit facility and other debt repayments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfDebt" scale="3" id="Tc_JURrqPxP_0GLGJJPnhTRDg_20_2">1,068</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfDebt" scale="3" id="Tc_wvRxmmyDuUO_wkHFbf6P-A_20_4">10,793</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfDebt" scale="3" id="Tc_d4oNa-h_mkaIgm541q1vRw_20_6">322,634</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Payment of debt issuance costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" id="Tc_scJGDxoTfUeMGF_62S46fw_21_2">72</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" id="Tc_IIFIPDBGCkarA2lXuElzMw_21_4">40</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" id="Tc__S22a59JSUeRENMUfZbhSQ_21_6">1,400</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Issuance of common shares for cash, net of issuance costs (Note 15)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfCommonStock" scale="3" id="Tc_9I976xb7LUW42BYPmS3wIQ_22_2">2,656</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfCommonStock" scale="3" id="Tc_8BbwfbQydk-IpjqgP0e4Sg_22_4">6,194</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfCommonStock" scale="3" id="Tc_Gkk37Zeruk-g4fpjbxAyDA_22_6">237,973</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Payment of contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_q4jvwc11hkKXLQ73h1GjhA_23_6">785</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cash provided by financing activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" id="Tc_Z4Lvzw9esk6gKeVN_95Fhw_24_2">1,516</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" id="Tc_Ckz3izFyw0uf0dWv0e4rlg_24_4">5,557</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" id="Tc_JeEwiezgdkOVRfCYhjWnxQ_24_6">210,169</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Effect of foreign exchange rate changes on cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" sign="-" scale="3" id="Tc_HHb-xiUbYE2vnUNc3pn5sA_25_2">2,771</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_drc05Sa6DkG5_iJI3NN3Ig_25_4">4,633</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" sign="-" scale="3" id="Tc_1rBcGbEWpkK0rjXA2Lc-xQ_25_6">363</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Increase in cash</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="Tc_rCeX5LNnkkmy0JQbjLZ3xg_26_2">79,776</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="Tc_e9uHMhCqUEuMDk71YMOcOA_26_4">89,258</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="Tc_r-vznhF8gkqlSXyCJ5hPuQ_26_6">17,105</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Cash, beginning of year</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_LuMy3R8eXUWsuBkzBADcEg_27_2">133,661</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_6mq2vdOiOEKkMiGcHw2GIQ_27_4">44,403</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2019_uG_65RiDbkmgzyTBRRPLRA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_1Bd9wk-QskW_LphXmns9Xw_27_6">27,298</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Cash, end of year</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_0t9xQwtg90K98Kg4UCtG9Q_28_2">213,437</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_tU6ydn4zA0aNwGssqphsKg_28_4">133,661</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_s7CfTFSm-E2u8aubQoD-Lg_28_6">44,403</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Supplemental disclosure of cash flow information:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Cash paid during the year for interest</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestPaidNet" scale="3" id="Tc_qPbzmWMjz0ysfYK56TV1EA_30_4">89</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestPaidNet" scale="3" id="Tc_oyrHhl8mYkiQifUyJ-qk6w_30_6">3,516</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:60.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Cash paid during the year for income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_3PFjqOJIjkaovgrg6Be-sA_31_2">12,575</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_WyL7LiOZcUC7rsc2Jn4cZg_31_4">8,214</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_1UWbcbDRSkegLlGKomPMcA_31_6">8,946</ix:nonFraction></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;text-align:justify;margin:0pt 0pt 12pt 0pt;">The accompanying notes are an integral part of these consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">12</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_e69e1946_a7b8_4cbd_b61e_85ad82da7400"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</p><a id="Notes"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">NOTES&#xA0;TO CONSOLIDATED FINANCIAL STATEMENTS</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt 0pt 12pt 0pt;">(TABULAR AMOUNTS IN THOUSANDS OF US DOLLARS, EXCEPT PER SHARE AMOUNTS OR AS OTHERWISE INDICATED; US GAAP)</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock" id="Tb_p8AP9xRa60Gz1pee63ag4A" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;1&#xA0;- Description of the Business</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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.</p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:SignificantAccountingPoliciesTextBlock" id="Tb_NDAPo5U9tkKbU5eEdLddrg" continuedAt="Tb_NDAPo5U9tkKbU5eEdLddrg_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;2&#xA0;&#x2013;Basis of Presentation</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:BasisOfAccountingPolicyPolicyTextBlock" id="Tb_PPpwnwyGxUyi_6Mt1mlAjA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The accompanying 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 the US Securities and Exchange Commission (&#x201C;SEC&#x201D;) for the preparation of consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The world continues to experience a global pandemic related to the spread of the COVID-19 virus (the &#x201C;Pandemic&#x201D;). 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our fiscal&#xA0;year commences on February&#xA0;1<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of each&#xA0;year and ends on January&#xA0;31<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of the following&#xA0;year. Our fiscal&#xA0;year, which ends on January&#xA0;31, 2022, is referred to as the &#x201C;current fiscal&#xA0;year&#x201D;, &#x201C;fiscal 2022&#x201D;, &#x201C;2022&#x201D; or using similar words. Our previous fiscal&#xA0;year, which ended on January&#xA0;31, 2021, is referred to as the &#x201C;previous fiscal&#xA0;year&#x201D;, &#x201C;fiscal 2021&#x201D;, &#x201C;2021&#x201D; or using similar words. Other fiscal&#xA0;years are referenced by the applicable&#xA0;year during which the fiscal&#xA0;year ends. For example, &#x201C;2023&#x201D; refers to the annual period ending January&#xA0;31, 2023 and the &#x201C;fourth quarter of 2023&#x201D; refers to the quarter ending January&#xA0;31, 2023.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ConsolidationPolicyTextBlock" id="Tb_TqdcrGeVbUa9XqF0axGtkg" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Basis of consolidation</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="Tb_746vSPBc3U6Dck4osm8F9Q" continuedAt="Tb_746vSPBc3U6Dck4osm8F9Q_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Foreign currency translation</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The US dollar is the presentation currency of the Company. Assets and liabilities of our subsidiaries are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses are translated into US dollars 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. On substantial liquidation of a foreign operation, the component of accumulated other comprehensive income relating to that particular foreign operation is recognized in the consolidated statements of operations.</p></ix:nonNumeric></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">13</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_NDAPo5U9tkKbU5eEdLddrg_cont1" continuedAt="Tb_NDAPo5U9tkKbU5eEdLddrg_cont2"><ix:continuation id="Tb_746vSPBc3U6Dck4osm8F9Q_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The functional currency of each of our entities is generally the local currency in which they operate. Transactions incurred in currencies other than the local currency of an entity are converted to the local currency at the transaction date. Monetary assets and liabilities denominated in foreign currencies are re-measured into the local currency at the exchange rate in effect at the balance sheet date. All foreign currency re-measurement gains and losses are included in net income. For the&#xA0;year ended January&#xA0;31, 2022, foreign currency re-measurement loss of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" scale="6" id="Narr_tvI39nsVEESV_wLV1eWlKw">0.3</ix:nonFraction> million was included in net income (January&#xA0;31, 2021&#xA0;&#x2013; loss of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" scale="6" id="Narr_tTQtGqpaOUyTGQpUXy5dPQ">0.8</ix:nonFraction> million; January&#xA0;31, 2020&#xA0;&#x2013; loss of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" scale="6" id="Narr_alTvnh0-ukyGvybxx883wA">0.6</ix:nonFraction> million).</p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:UseOfEstimates" id="Tb_5mCSy2_LQUqBq_tgaaeUZw" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Use of estimates</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Preparing financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts that are reported in the consolidated financial statements and accompanying note disclosures. Although these estimates and assumptions are based on management&#x2019;s best knowledge of current events, actual results may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Estimates and assumptions are used when accounting for items such as allocations of the purchase price and the fair value of net assets acquired in business combination transactions, useful lives of intangible assets and property and equipment, revenue related estimates including determining the nature and timing of satisfaction of performance obligations, variable consideration, and other obligations such as product returns and refunds, allowance for doubtful accounts, collectability of other receivables, provisions for excess or obsolete inventory, determining the Company&#x2019;s incremental borrowing rate, restructuring accruals, fair value of stock-based compensation, assumptions embodied in the valuation of assets for impairment assessment, accounting for income taxes, valuation allowances for deferred income tax assets, realization of investment tax credits, uncertain tax positions and recognition of contingencies. Significant assumptions and judgment are used when determining the standalone selling price (&#x201C;SSP&#x201D;) of performance obligations in contracts with customers.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="Tb_s6RDNSoZ90253Ig4UytWew" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Cash</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Cash included highly liquid short-term deposits with original maturities of three&#xA0;months or less.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="Tb_n2xiG2w1kkOvu1cFMyaXcA" continuedAt="Tb_n2xiG2w1kkOvu1cFMyaXcA_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Financial instruments</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Fair value of financial instruments</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The carrying amounts of the Company&#x2019;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Derivative instruments</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 &#x201C;Derivatives and Hedging&#x201D; (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments&#x2019; fair values are recognized in earnings. The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Foreign exchange risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Interest rate risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Depending on the type of advance under the available facilities, interest on such borrowings will be charged based on either i) Canada or US prime rate; or ii) Banker&#x2019;s Acceptance (BA); or iii) US dollar London Interbank Offer Rate (LIBOR); or iv) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.</p></ix:nonNumeric></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">14</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_NDAPo5U9tkKbU5eEdLddrg_cont2" continuedAt="Tb_NDAPo5U9tkKbU5eEdLddrg_cont3"><ix:continuation id="Tb_n2xiG2w1kkOvu1cFMyaXcA_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Credit risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to credit risk through our invested cash and accounts receivable. We hold our cash with reputable financial institutions. The lack of concentration of accounts receivable from a single customer and the dispersion of customers among industries and geographical locations mitigate our credit risk.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Equity risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. 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 Company does not hold derivatives for speculative purposes.</p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" id="Tb_tfKX0YJV5kGX_UvoNQWU2w" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Provision for Credit Losses</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to credit losses primarily through our trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:InventoryPolicyTextBlock" id="Tb_JgzH7NTwpUieOzf5K3v2NA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Inventory</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Finished goods inventories are stated at the lower of cost and net realizable value. The cost of finished goods is determined on the basis of average cost of units.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" id="Tb_rd7uz3xtaU-vHe8-41ibJg" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Impairment of long-lived assets</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal&#xA0;years presented.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock" id="Tb_EZcW0miK6UqCE_bnc_01Yg" continuedAt="Tb_EZcW0miK6UqCE_bnc_01Yg_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Goodwill and intangible assets</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We test for impairment of goodwill at least annually on October&#xA0;31<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of each&#xA0;year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our reporting unit&#x2019;s carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit. We completed the qualitative assessment during our third quarter of 2022 and concluded that it was more likely than not that the fair value of the goodwill was greater than the carrying value. As a result, <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="0" id="Narr_x7doF_Nd5kKIJj7WzL3zSA">no</ix:nonFraction> impairment of goodwill was recorded in fiscal 2022 (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="0" id="Narr_1TikVotd20-zqNEyIVLggA"><ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:GoodwillImpairmentLoss" scale="0" id="Narr_OhKiLceLe0CytFk6plli9g">no</ix:nonFraction></ix:nonFraction> impairments were recorded for fiscal 2021 or fiscal 2020).</p></ix:nonNumeric></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">15</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_NDAPo5U9tkKbU5eEdLddrg_cont3" continuedAt="Tb_NDAPo5U9tkKbU5eEdLddrg_cont4"><ix:continuation id="Tb_EZcW0miK6UqCE_bnc_01Yg_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset 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 asset or asset groups is determined by discounting the expected related future cash flows.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Amortization of our intangible assets is generally recorded at the following rates:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dsgx:ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" id="Tb_Bt0WBS_STkemdAgSrYTNGQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;width:47.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:'Arial','Helvetica','sans-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.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_X5IRyacMyEe63uLdWdhnyg;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_HTscRJdVmE-hEfxPxlNJTQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_JPQQvC54zUiUlbdqQbcoBA">twenty years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technologies</p></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_H4Aki753xUGuQreNk3KAuw;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> to <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_SEpa10LrA0WzfrbaPWE0pA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_M3ZoKW_PP0qGA8qmd35DYg">twelve years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_R3HFVPmLxECS61adSjqHBQ;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_2AF4Kk2u9UCFYGLlmpx5eQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_aW4v8ODil02JP2xkvki6sQ">fifteen years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_eEcpTStYuEqXnki-TnMzpQ;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_E5rEsetdQE2euDGYsh7YKg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Narr_ta3x1fZJG0W40OGChc3RcQ">twelve years</ix:nonNumeric></p></td></tr></table></ix:nonNumeric></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="Tb_5xBP54x7X02VOZCpQ_j7-w" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Property and equipment</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Property and equipment is recorded at cost.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Effective February&#xA0;1, 2020, we changed our accounting method for property&#xA0;&amp; equipment from the declining balance method of depreciation to the straight-line method of depreciation to better reflect the consumption of the assets&#x2019; economic benefits. Our change in the method of depreciation is considered a change in accounting estimate effected by a change in accounting principle and has been applied prospectively. The change in the method of depreciation did not have a material impact on our results of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Depreciation of our property and equipment is generally recorded at the following rates:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dsgx:DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" id="Tb_ZJbOtptfFUGsjvKr6cKsYQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:80%;"><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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;width:47.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:'Arial','Helvetica','sans-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:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Computer equipment and software</p></td><td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_qGgZ1KLOW0iJoBwYrLEc1w" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_YuN7ebvmYUivy8Jkq-Ohdw">1</ix:nonNumeric> to <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_22SDPXLDbEGZubRlz13-ag" format="ixt-sec:durwordsen" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_MIPprDRKhEiqDuPy82YyHQ">13 years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_wQ56Xji8okOHvhjyNs8GBg" format="ixt-sec:duryear" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_faH4YFyB-02bDA-wZ7T1TA">3</ix:nonNumeric> to <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_EITjm6OxtkeOKUat7j70Wg" format="ixt-sec:durwordsen" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_W4MsmgsfIUOg_7UnS676gg">14 years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Leasehold improvements</p></td><td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over lesser of useful life or term of lease</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Equipment installed with customers</p></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember_by-ctpJoUEKaLWdA6pBRzg" format="ixt-sec:durwordsen" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Narr_HeVoO17YcEeUnZpNMp7q3w">3 years</ix:nonNumeric></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:LesseeLeasesPolicyTextBlock" id="Tb_V5gL6_qFF0-60lESTNKeNw" continuedAt="Tb_V5gL6_qFF0-60lESTNKeNw_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Leases</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">At the inception of a contract we assess whether a contract is, or contains, a lease based on whether the contract conveys the right to control the use of an identified asset for a period of time in exchange for consideration. We have building lease agreements with lease and non-lease components, which are accounted for separately. For computer equipment and vehicle leases, we have elected to account for the lease and non-lease components as a single lease component.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We recognize a right-of-use (&#x201C;ROU&#x201D;) asset and a lease liability at the lease commencement date. The ROU asset is initially measured based on the initial amount of the lease liability adjusted for any lease payments made at or before the commencement date, plus any initial direct costs incurred and less any lease incentives received. The assets are depreciated to the earlier of the end of the useful life of the ROU asset or the lease term using the straight-line method as this most closely reflects the expected pattern of consumption of the future economic benefits. The lease term includes periods covered by an option to extend if the Company is reasonably certain to exercise that option.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The lease liability is initially measured at the present value of the future lease payments at the commencement date, discounted using the interest rate implicit in the lease or, if that rate cannot be readily determined, the Company&#x2019;s incremental borrowing rate. As most of our leases do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The lease liability is measured at amortized cost using the effective interest method. It is remeasured when there is a change in future lease payments arising from a change in an index or rate, if there is a change in the Company&#x2019;s estimate of the amount expected to be payable under a residual value guarantee, or if the Company changes its assessment of whether it will exercise a purchase, extension or termination option. When the lease liability is remeasured, a corresponding </p></ix:nonNumeric></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">16</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_NDAPo5U9tkKbU5eEdLddrg_cont4" continuedAt="Tb_NDAPo5U9tkKbU5eEdLddrg_cont5"><ix:continuation id="Tb_V5gL6_qFF0-60lESTNKeNw_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">adjustment is made to the carrying amount of the ROU asset, or is recorded in profit or loss if the carrying amount of the ROU asset has been reduced to zero.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12&#xA0;months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.</p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:RevenueFromContractWithCustomerPolicyTextBlock" id="Tb_FBgVlP6CKUKZ7LqRLEV4CQ" continuedAt="Tb_FBgVlP6CKUKZ7LqRLEV4CQ_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Revenue recognition</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the SSP. SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. In addition to these general policies, the specific revenue recognition policies for each major category of revenue are included below.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">License</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Revenues for distinct licenses for on-premise or hosted software are derived from perpetual licenses granted to our customers for the right to use our software products. License revenues are billed on the effective date of a contract and revenue is recognized at the point in time when the customer is provided control of the respective software.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Services</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Services, which allow customers to access hosted software over a contract term without taking possession of the software, is provided on a subscription and/or transactional fee basis. Revenues from hosted software subscriptions and maintenance are typically billed annually in advance and revenue is recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Transaction fees are typically billed and recognized as revenue on a&#xA0;monthly basis based on the customer usage for that period.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Professional Services&#xA0;&amp; Other</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Professional services are comprised of consulting, implementation and training services related to our services and products. These services are generally considered to be separate performance obligations as they provide incremental benefit to customers beyond providing access to the software. Professional services are typically billed on a time and materials basis and revenue is recognized over time as the services are performed. For professional services contracts billed on a fixed price basis, revenue is recognized over time based on the proportion of services performed. Revenue related to customer reimbursement of travel related expenses is recognized on a gross basis as incurred. Other revenues include hardware revenue and is generally billed, and revenue is recognized, when control of the product has transferred under the terms of an enforceable contract.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the </p></ix:nonNumeric></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">17</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_NDAPo5U9tkKbU5eEdLddrg_cont5" continuedAt="Tb_NDAPo5U9tkKbU5eEdLddrg_cont6"><ix:continuation id="Tb_FBgVlP6CKUKZ7LqRLEV4CQ_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of its promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Costs to obtain a contract with a customer</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between <span style="-sec-ix-hidden:Hidden_HWyYO8ERp0Wr4ZxBm81I0w;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> to <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_4hqUhne3rUqREbUiI2ekeQ" format="ixt-sec:durwordsen" name="dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" id="Narr_SuikmMAg90-wIKY0NgJl0Q">six&#xA0;years</ix:nonNumeric>, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one&#xA0;year or less.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Contract assets and liabilities</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s)&#xA0;and relates primarily to prepaid maintenance or other recurring services. Deferred revenues are relieved as revenue is recognized. Contract assets and deferred revenues are reported on a contract-by-contract basis at the end of each reporting period.</p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" id="Tb_2Sm8Whmoh0eECPLUddISDQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Research and development costs</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="Tb_AQV6NhBsmEOjvknakJBjwQ" continuedAt="Tb_AQV6NhBsmEOjvknakJBjwQ_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Stock-based compensation plans</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Stock Options</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Employee stock options generally vest over a <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_T35Ce-ftVkCfzd2IVx2x1w" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Narr_kdbZkA1tJ0mjmGh6HXzm6Q">five-year</ix:nonNumeric> period starting from the grant date and expire <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_T35Ce-ftVkCfzd2IVx2x1w" format="ixt-sec:durwordsen" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" id="Narr_sE2lKS7_zU-eHbaPnBWfCA">seven&#xA0;years</ix:nonNumeric> from the grant date. Non-employee directors&#x2019; and officers&#x2019; stock options generally have quarterly vesting over a <span style="-sec-ix-hidden:Hidden_MlLWcOJvI0Cji82e8NzJRw;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_LzBPItrnkUSyLyvpW5dpwg" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Narr_B4R7-QYjz0eTXc8YzpKOGQ">five-year</ix:nonNumeric> period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The fair value of employee stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for </p></ix:nonNumeric></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">18</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_NDAPo5U9tkKbU5eEdLddrg_cont6" continuedAt="Tb_NDAPo5U9tkKbU5eEdLddrg_cont7"><ix:continuation id="Tb_AQV6NhBsmEOjvknakJBjwQ_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Performance&#xA0;&amp; Restricted Share Units</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (&#x201C;PSUs&#x201D;) and restricted share units (&#x201C;RSUs&#x201D;).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">PSUs vest at the end of a <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Narr_s1N6v5DQ5kybwSqTrKEZpA">three-year</ix:nonNumeric> performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&#x201C;TSR&#x201D;) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading&#xA0;days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" format="ixt-sec:durwordsen" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" id="Narr_4U8ZgHPJM02GKZNaa2rXyA">ten&#xA0;years</ix:nonNumeric> from the grant date. New shares are issued from treasury upon the redemption of a PSU.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">PSUs are measured at fair value estimated using a Monte Carlo Simulation approach. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">RSUs vest annually over a <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Narr_mBsKHd0nkU6kla4QE4SSWQ">three-year</ix:nonNumeric> period starting from the grant date and expire <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" format="ixt-sec:durwordsen" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" id="Narr_5A-sAcWTXUe5Q_qHKqAU8Q">ten&#xA0;years</ix:nonNumeric> from the grant date. We issue new shares from treasury upon the redemption of an RSU.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Deferred Share Unit Plan</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our board of directors adopted a deferred share unit plan effective as of June&#xA0;28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (&#x201C;DSUs&#x201D;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading&#xA0;days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none or a&#xA0;percentage of the eligible director&#x2019;s fees which would otherwise be payable in cash. If a director has invested less than the minimum amount of equity in Descartes, as prescribed from time to time by the board of directors, then the director must take at least <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_dsgx_DeferredShareUnitPlanMember_tqFBQc7Jn0OwDHsZ0d7dIw" decimals="2" format="ixt:numdotdecimal" name="dsgx:BaseAnnualFeePercent" scale="-2" id="Narr_CFmNO_QIZUa55Hheim81aA">50</ix:nonFraction>% of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our board of directors adopted a cash-settled restricted share unit plan effective as of May&#xA0;23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&#x201C;CRSUs&#x201D;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading&#xA0;days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over <span style="-sec-ix-hidden:Hidden_-ChMqGiq8EGz7VHoOSALbg;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_dsgx_CashsettledRestrictedSharePlanMember_FU9bE0nj0UOkmWAWR5ux4Q" format="ixt-sec:durwordsen" name="dsgx:CashSettledRestrictedShareUnitsVestingPeriod" id="Narr_43VySfYkMkCZQ7LQ9VTNFg">five-year</ix:nonNumeric> periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30&#xA0;days following a vesting date and in any event prior to December&#xA0;31<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of the calendar&#xA0;year in which a vesting date occurs. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:BusinessCombinationsPolicy" id="Tb_fXYCMqJcr0-2ZO6NeCyevg" continuedAt="Tb_fXYCMqJcr0-2ZO6NeCyevg_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Business combinations</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We apply the provisions of ASC Topic 805, &#x201C;Business Combinations&#x201D; (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.</p></ix:nonNumeric></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">19</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_NDAPo5U9tkKbU5eEdLddrg_cont7" continuedAt="Tb_NDAPo5U9tkKbU5eEdLddrg_cont8"><ix:continuation id="Tb_fXYCMqJcr0-2ZO6NeCyevg_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one&#xA0;year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, &#x201C;Exit or Disposal Cost Obligations&#x201D; (Topic 420) and are accounted for separately from the business combination.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.</p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:IncomeTaxPolicyTextBlock" id="Tb_FglAsRA2Dk-LbBlDAe9ptw" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Income taxes</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We use the liability method of income tax allocation to account for income taxes. Deferred tax assets and liabilities arise from temporary differences between the tax bases of assets and liabilities and their reported amounts in the consolidated financial statements that will result in taxable or deductible amounts in future&#xA0;years. These temporary differences are measured using enacted tax rates. A valuation allowance is recorded to reduce deferred tax assets to the extent that we consider it is more likely than not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes.&#xA0;The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.</p></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:EarningsPerSharePolicyTextBlock" id="Tb_59IKd1LTI0uzjuWoDAW6SQ" continuedAt="Tb_59IKd1LTI0uzjuWoDAW6SQ_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Earnings per share</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Basic earnings per share is calculated by dividing net income by the weighted average number of common shares outstanding during the period. Diluted earnings per common share is calculated by dividing net income by the sum of the weighted average number of common shares outstanding and all additional common shares that would have been </p></ix:nonNumeric></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">20</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_NDAPo5U9tkKbU5eEdLddrg_cont8" continuedAt="Tb_NDAPo5U9tkKbU5eEdLddrg_cont9"><ix:continuation id="Tb_59IKd1LTI0uzjuWoDAW6SQ_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">outstanding if potentially dilutive common shares had been issued during the period. The treasury stock method is used to compute the dilutive effect of stock-based compensation.</p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="Tb_5RnHco53ekiVVBBYHrMtCw" continuedAt="Tb_5RnHco53ekiVVBBYHrMtCw_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Recently adopted accounting pronouncements</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In February&#xA0;2016, the FASB issued Accounting Standards Update 2016-02, &#x201C;Leases (Topic 842)&#x201D; (&#x201C;ASU 2016-02&#x201D;) and issued subsequent amendments to the initial guidance during 2018, collectively referred to as &#x201C;ASC 842&#x201D;. These updates supersede the lease guidance in ASC Topic 840, &#x201C;Leases&#x201D; and require the recognition of lease assets and lease liabilities by lessees for most leases previously classified as operating leases under ASC Topic 840. Leases will continue to be classified as either operating or finance. ASC 842 was effective for annual periods, and interim periods within those annual periods, beginning after December&#xA0;15, 2018, which was our fiscal&#xA0;year that began on February&#xA0;1, 2019 (fiscal 2020). The Company adopted ASC 842 as of February&#xA0;1, 2019 using the cumulative effect method.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As permitted under ASC 842, we have elected to apply the practical expedient to carry forward our current assessments of whether a contract contains a lease, lease classification, remaining lease terms and amounts capitalized as initial direct costs. We have also elected to apply the practical expedient not to recognize right-of-use (ROU) assets and lease liabilities for short-term leases that have a lease term of 12&#xA0;months or less. The adoption of ASC 842 resulted in an increase to ROU assets and lease liabilities of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_2_1_2019_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member_Uxq09-K35EWseTk8RpKELw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="6" id="Narr_YiAccjw3-06o1g0tJTIfsw">10.4</ix:nonFraction> million as of February&#xA0;1, 2019. The adoption of ASC 842 did not have a material impact on either our consolidated statement of operations or our consolidated statement of cash flows.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In June&#xA0;2016, the FASB issued Accounting Standards Update 2016-13, &#x201C;Financial Instruments&#xA0;&#x2013; Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments&#x201D; (&#x201C;ASU 2016-13&#x201D;) and issued subsequent amendments to the initial guidance during the 2019 calendar&#xA0;year, collectively referred to as &#x201C;ASC 326&#x201D;. ASC 326 requires the measurement and recognition of expected credit losses for financial assets held at amortized cost. ASC 326 replaces the existing incurred loss impairment model with an expected loss model which requires the use of forward-looking information to calculate credit loss estimates. ASC 326 was effective for annual periods, and interim periods within those annual periods, beginning after December&#xA0;15, 2019, which was our fiscal&#xA0;year that began on February&#xA0;1, 2020 (fiscal 2021).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The Company is exposed to credit losses primarily through its trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions. The Company adopted ASC 326 as of February&#xA0;1, 2020 using the cumulative effect method and therefore the comparative information has not been restated. The adoption of ASC 326 did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In January&#xA0;2017, the FASB issued Accounting Standards Update 2017-04, &#x201C;Intangibles&#xA0;&#x2013; Goodwill and Other (Topic 350): Simplifying the Test for Goodwill Impairment&#x201D; (&#x201C;ASU 2017-04&#x201D;). ASU 2017-04 simplifies how an entity is required to test goodwill for impairment. ASU 2017-04 was effective for annual periods, and interim periods within those annual periods, beginning after December&#xA0;15, 2019, which was our fiscal&#xA0;year that began on February&#xA0;1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In August&#xA0;2018, the FASB issued Accounting Standards Update 2018-15, &#x201C;Intangibles&#xA0;&#x2013; Goodwill and Other&#xA0;&#x2013; Internal-Use Software (Subtopic 350-40): Customer&#x2019;s Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract&#x201D; (&#x201C;ASU 2018-15&#x201D;). ASU 2018-15 aligns the requirements for capitalizing implementation costs incurred in a hosting arrangement that is a service contract with the requirements for capitalizing implementation costs incurred to develop or obtain internal-use software. ASU 2018-15 was effective for annual periods, and interim periods within those annual periods, beginning after December&#xA0;15, 2019, which was our fiscal&#xA0;year that began on February&#xA0;1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">In December&#xA0;2019, the FASB issued Accounting Standards Update 2019-12, &#x201C;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes&#x201D; (&#x201C;ASU 2019-12&#x201D;). ASU 2019-12 simplifies how an entity accounts for income taxes. ASU 2019-12 is effective for annual periods, and interim periods within those annual periods, beginning after December&#xA0;15, 2020, </p></ix:nonNumeric></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">21</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_NDAPo5U9tkKbU5eEdLddrg_cont9"><ix:continuation id="Tb_5RnHco53ekiVVBBYHrMtCw_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">which is our fiscal&#xA0;year that began on February&#xA0;1, 2021 (fiscal 2022). The Company adopted this guidance in the first quarter of fiscal 2022. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Recently issued accounting pronouncements</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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.</p></ix:continuation></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:BusinessCombinationDisclosureTextBlock" id="Tb_Q6MHINbAf0W7DwOFZEylwg" continuedAt="Tb_Q6MHINbAf0W7DwOFZEylwg_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;3&#xA0;&#x2013; Acquisitions</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2022 Acquisitions</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_26_2021_To_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_-NIvLjm4HEmB4367X3GH_A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_1EaAeVn4gkqMJpcY5xgE_Q">35.9</ix:nonFraction> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_UeQxy_Xq3EWY5r4R8mN2Bg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_KxCXFylJAkSDFNRZQ9qEUQ">0.6</ix:nonFraction> million with a fair value of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_UeQxy_Xq3EWY5r4R8mN2Bg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_2MYNpDnYMEWAXNG_eAs5LQ">0.5</ix:nonFraction> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_UeQxy_Xq3EWY5r4R8mN2Bg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible" scale="6" id="Narr_7YAU5FZb3Ui_jrcSU_R7Zg">0.1</ix:nonFraction> million. The purchase price was finalized in the three&#xA0;month period ended January&#xA0;31, 2022 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_fE0y39-Y1kOHLDmNwnB4zA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_0vtxcfeW-02hiGwRrwZ33Q">25.2</ix:nonFraction> million (EUR <ix:nonFraction unitRef="Unit_Standard_EUR__n7KenNwikaxusqIFuXIvQ" contextRef="Duration_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_fE0y39-Y1kOHLDmNwnB4zA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_Mhp3gjhHSUGIUwpKeRauTg">20.7</ix:nonFraction> million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_k2f6AxEZnU-5tuFi5l7-yA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_nP_X4NuUtEWnRBOQxGvQJQ">0.7</ix:nonFraction> million with a fair value of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_k2f6AxEZnU-5tuFi5l7-yA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_9NhO8OMcg0CZonQIJBlchg">0.7</ix:nonFraction> 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 May&#xA0;7, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Acpz1De2gUW7H4nJYzi56A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_LiYEglcTOE6bKyRNMHqRJw">29.2</ix:nonFraction> million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_Ct7rGoUyB0WyDwxfwpVkOg">10.0</ix:nonFraction> million in cash is payable if certain revenue performance targets are met by GreenMile in the <ix:nonNumeric contextRef="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Acpz1De2gUW7H4nJYzi56A" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_vT-8euv25Ui84g5q4W3DxQ">two&#xA0;years</ix:nonNumeric> following the acquisition. The fair value of the contingent consideration was valued at $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_9VsJN-wazUe0CCJYxQwYxA">3.3</ix:nonFraction> million at the acquisition date. The gross contractual amount of trade receivables acquired was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_lz1l7G0lokyNrjnBRIdTUQ">1.1</ix:nonFraction> million with a fair value of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_H_h_5GDb8EiPgN9RlSC4CQ">1.0</ix:nonFraction> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible" scale="6" id="Narr_Q6slGOtPJkm-eK9nBWFIPw">0.1</ix:nonFraction> million. 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 July&#xA0;8, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">For the businesses acquired during fiscal 2022, we incurred acquisition-related costs of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Acquisitions2022Member_iwvQAXkNEUC4-KVO_3DvMQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="6" id="Narr__jnlPsA4kEq7Tg3DeK69WA">0.9</ix:nonFraction> million for the&#xA0;year ended January&#xA0;31, 2022, respectively. The acquisition-related costs were primarily for advisory services and are included in other charges in our consolidated statements of operations. For the&#xA0;year ended January&#xA0;31, 2022, we have recognized aggregate revenues of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Acquisitions2022Member_iwvQAXkNEUC4-KVO_3DvMQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" scale="6" id="Narr_1QLzVmwS9E2kUtxs1dnTmQ">12.0</ix:nonFraction> million, respectively, and a net loss of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Acquisitions2022Member_iwvQAXkNEUC4-KVO_3DvMQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" scale="6" id="Narr_360H8cGMJ02tmC3GB5oZ_Q">1.3</ix:nonFraction> million from QuestaWeb, Portrix and GreenMile since the date of acquisition in our consolidated statements of operations.</p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">22</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_FV7YM_VI1kWA_Rk61qYcTQ_1_2"></a><a id="Tc_dujKz3pMrEy03OHj_UhFvA_1_4"></a><a id="Tc_wselp2-LBken1tgsV0Fiww_1_6"></a><a id="Tc_vyr2HUfTo0mSxVRgp0Uk_A_1_8"></a><a id="Tc_9XOdjb7nSUWJYMGnYKG4ww_2_0"></a><a id="Tc_ieHiLD_mHEyc7A2UurguwA_3_0"></a><a id="Tc__4iPKBOBsUWoATimgbYkvQ_4_0"></a><a id="Tc_EH4b2hUZh0aFBsiBitKEnA_4_2"></a><a id="Tc_0L0-oNx02U-23RMRHowDwQ_4_4"></a><a id="Tc_5in6Qp0mWUyglLxbuGKTSw_5_0"></a><a id="Tc_7Kh5D84MUEqprpMLDFEUOA_7_0"></a><a id="Tc_hdpWscQLT0iHXXiCfEB-wA_8_0"></a><a id="Tc_etPHXBfheEmVymIriHoNSA_9_0"></a><a id="Tc_2S7G0JUSG0yAAmlbKrdzfg_9_4"></a><a id="Tc_EcAL3YW3ZEGzY_44auGYeQ_10_0"></a><a id="Tc_eXTEW0p2MU28Lk5heBZZGA_10_6"></a><a id="Tc_jiRR2axIaEKRDOKGk2ZkwA_11_0"></a><a id="Tc_kpv_3Ne34U-jske8sk64KQ_11_2"></a><a id="Tc_urbq8RtykEewBZH7w7sK7g_11_4"></a><a id="Tc_6qda0bCUBUSjQ5sG3KmY7w_12_0"></a><a id="Tc_TqU-Hrgys0q2tFTm0RAl_g_13_0"></a><a id="Tc_wt4bTwdfGEaYS3bUJHuD5A_14_0"></a><a id="Tc_KcK_1mJBLUOKYrENY2wLAA_14_6"></a><a id="Tc_KvL_vwQ7pUafRpuujOk5ZQ_15_0"></a><a id="Tc_9G8ROWWyq0CsXIDf7ilYEA_15_2"></a><a id="Tc_7E1uoTkxj0SkE-8BXQtO7g_16_0"></a><a id="Tc_DdqPQ_Tf2UqyCbdLmBZRTA_16_2"></a><a id="Tc_BFgCAZOjjkCAW2kFGE3gOw_16_4"></a><a id="Tc_UjUr6A9-_kWCmoYwdcZzAw_17_0"></a><a id="Tc_GVeyPWd8kEO_vi5t12U4Cg_17_2"></a><a id="Tc_O1zLIudiF0u8FRPACQBGrQ_17_6"></a><a id="Tc_pIYGBIOG80mCLhW0SBA46A_18_0"></a><a id="Tc_fr5Afj2TgE-ytQm0kCNHVg_20_0"></a><a id="Tc_shAaWlYR3ES8VAeVy3DfCA_21_0"></a><a id="Tc_F09uRGXzfEqE4C2XnjmMZg_22_0"></a><a id="Tc_HGsA2FWEdUm38AuLKLslpw_23_0"></a><a id="Tc_HtPCj986gEKdQSROAcgzTA_24_0"></a><a id="Tc_8kObPvYlqkGZJOxCbSQPMA_25_0"></a><a id="Tc_rVyD0fe7oEyRyya_TTpF8w_1_2"></a><a id="Tc_Gd7UUIDSm0K1mMj2x1kV4Q_1_4"></a><a id="Tc_KOo8-52PdEK0lqZn6vVVsw_1_6"></a><a id="Tc_JnhivM0To0-Hto3iOif8xg_2_0"></a><a id="Tc_EJ0v1zATQUeAL6FlkQs6Bw_3_0"></a><a id="Tc_Tse-MBnT_ka7ahHjSTzmJQ_4_0"></a><a id="Tc_N-D20fnex06MKjLs3NrzzQ_5_0"></a><ix:continuation id="Tb_Q6MHINbAf0W7DwOFZEylwg_cont1" continuedAt="Tb_Q6MHINbAf0W7DwOFZEylwg_cont2"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;">The final purchase price allocation for QuestaWeb and the preliminary purchase price allocations for Portrix and GreenMile, which have not been finalized, are as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" id="Group_3P00127brEOEmsYnGyEEtg" continuedAt="Group_3P00127brEOEmsYnGyEEtg_2" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:9pt;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:56.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:7.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:7.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:'Arial','Helvetica','sans-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.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">QuestaWeb</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Portrix</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Green&#xA0;Mile</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Purchase price consideration:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash, less cash acquired related to QuestaWeb ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_loT4uLlqmkKYvb2YIYs87w">2,097</ix:nonFraction>), Portrix ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_XxJd34y97EiS9vW9GLYHgA">200</ix:nonFraction>) and GreenMile ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_oBxQwIVI10Of7OlTjPeAbA">1,552</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_A7pGMem0k0OZaPg1OZfOvw_3_2">35,860</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_1AYpAqx4Bkeyq2Gt88RzyQ_3_4">25,188</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_f0igNrrjCkaQJL2NIwtH6Q_3_6">29,230</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_L2c9RnEMcUuXwYLlnYsVdg_3_8">90,278</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_paqP0rs1kE2hzcHUmFBsKQ_4_6">3,339</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_nykD4Bax4k2-Ad8106Hecg_4_8">3,339</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net working capital adjustments payable / (receivable)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_P95FM9187EG1CAz5DDlNOA_5_2">17</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" sign="-" scale="3" id="Tc_E7LIn3gWeUipHMmPz8qh0A_5_4">54</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" sign="-" scale="3" id="Tc_Ry0QvQh2RUezWm984Z4v3A_5_6">308</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" sign="-" scale="3" id="Tc_smGwCxn9-E2T-3q896Hbzg_5_8">345</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_KJL0vxFaAkiRq1j1BQlYng_6_2">35,877</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_NFloWM1rbkmA8wgu-DEzdQ_6_4">25,134</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_Cxpdw77TOUWHqbLRe-EW5g_6_6">32,261</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_VoJ55qBThEyr7yVv4QlUyg_6_8">93,272</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Allocated to:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current assets, excluding cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_pUkxlCZQDUGm6WlvWALU4Q_8_2">714</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_FbMP3l5JWUmMVVeEW9ndKw_8_4">810</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_2_dFoZ7zrEq_0Ww_fCex_Q_8_6">2,186</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_9lSHXCxuaE-Tx_lR3avIfQ_8_8">3,710</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" id="Tc_VviXsE4VNESMdkeD6iY9Ew_9_2">78</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" id="Tc_kXdmJmVEX062woMlAAhL9A_9_6">89</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" id="Tc_Y4Ef6Yg3qkqJ7IY8Wkh2_g_9_8">167</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" scale="3" id="Tc_oMVObqKCj06h3AIVDhGDBg_10_2">123</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" scale="3" id="Tc_4Nwqj3aK_0aOw0eYrQrgQw_10_4">374</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" scale="3" id="Tc_hnaw19xC_kuRvMnjx9LG2g_10_8">497</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Other long-term assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" scale="3" id="Tc_cs_avwhopky9L6srb0GX5Q_11_6">242</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" scale="3" id="Tc_hbWMx76nN0aGkoIS7YEJbQ_11_8">242</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_VViANJmOOEe1_Ldrj8dlHg_12_2">170</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_EktbI4rL0kOx8Us_35tzNw_12_4">871</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_K6RKmwJQ3EmbiagbKu6WUQ_12_6">1,498</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_OLh5eX_5p0y9bPhn-xzK7Q_12_8">2,539</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_fuTJkFymrUOirk3SSetntw_13_2">736</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_wyifSHN39ECSb2JYyFz81Q_13_4">499</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_QQ0y6jmo3U60QxhyDsMyIQ_13_6">909</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_3WeAFH89UEmNkxQBwUm82w_13_8">2,144</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" sign="-" scale="3" id="Tc_QLyD4A7KjUWLkA3cXAOA3Q_14_2">123</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" sign="-" scale="3" id="Tc_5UtKOGXXy0SWd93xGtLHFQ_14_4">374</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" sign="-" scale="3" id="Tc_PFNpY33BaE6bEhEloqF9Tw_14_8">497</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred income tax liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_QubMih7BHEi-DQ6OVbM_7A_15_4">5,185</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_RCzHguEOVU2LvmvlwDK17g_15_6">752</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_8ar2b97Xr0CdzIFZfrftow_15_8">5,937</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Long-term income taxes payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" scale="3" id="Tc_Qd3tT79PMUGLvzHMSa9Jnw_16_6">365</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" scale="3" id="Tc_xh_VOJbdiECodmqkYMG3og_16_8">365</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" scale="3" id="Tc_-n1yiNXlVk6RhKs6CHxK8Q_17_4">1,062</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" scale="3" id="Tc_FXt4fyvLy0OSVbam-ZzgoQ_17_8">1,062</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net tangible assets (liabilities) assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_WfZR6e7sIUqoRFrKo73K4w_18_2">114</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_ILqwioHcK0mvCmMZFAxMGA_18_4">6,807</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_d5pRi_vZZ0quP-UKwE95QA_18_6">1,007</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_uTRErM0SPEC00UE5FNYmEA_18_8">7,928</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Finite life intangible assets acquired:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_9HVnyG-GgkS3TAR7yaffRQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_D42bReVxCEGj_wegzHuO7A_21_2">4,800</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_yaSyCWUyfEmXCz3tNLVbRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_Yoc4a0Q2ZUuh8TNDpwoy9g_21_4">4,014</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_txYuo3m0uUqxVIbsRXXUdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_kXAH6XJJOUK6X-7xfGbNwg_21_6">5,700</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_8HUH7Y_IdkC1mJohr3nlZQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_OFw_BCVnIUeQ52Eipi3wPw_21_8">14,514</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_uC3qtrAlckiNFx9y3xMYcQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_uU9TLeqV7kGq7ch-YIKRmA_22_2">8,900</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_EN8sgTg8z0O8q8r2t3z_Fg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_rsR_W8lbd0eMcOgOKpGnVg_22_4">12,286</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IDk6N0SKMU6pWQST9laSxQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_kr6P2zkG2Uy_C-oW55335w_22_6">14,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_8Ah7qZo0N0q9fJLHWe_fAQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_eHNXGdppWUuvNEC0gleb_w_22_8">35,186</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember__4iI8QiVVkCWTDOwVp8BPQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_-ypTDPaqcUmEivCZH8yqcg_23_2">100</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_e_qmpySADECwk7mYyKxEiw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_tP7QA2sqmk2hPP-Ny-b_ZQ_23_4">122</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_OAOOdrPxlEGBgjExzkPMpQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_rCaxDFuWuUONhqgCuZXKMw_23_6">100</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_NlJ5oxTQ6UWVrL3DGtx8Dw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_lVS8jzqWXkyUxnGAveXrIg_23_8">322</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Zg8RmQtgDUy46PpX-zr9xA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_BrDir2E_uEqKPtqAtBIIqQ_24_2">500</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_1IENC0jwXESl2IShVnfpRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_K6P8wdqIkkGnBOnkZh7c-w_24_4">487</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_eqDX7VyTkUyhFUQH9sWjXg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_DN4mKcYg7EOdUnttKdzQzg_24_6">500</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_m2aVx6RaU0yxG_4hM-YwGg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_nrBQDbLY6UK5zsxN3qfyFQ_24_8">1,487</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_zPRLCM0scEWOf7yoa3oFww_25_2">21,691</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_qAduGHJgeEq3XrzylIgN4A_25_4">15,032</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_hwzmuW9BdUmRFJtMuRWjDw_25_6">12,968</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_EKANTLSaV02uwjfwIsWyOg_25_8">49,691</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_oTj-os_3X0qhgBmR5Cc7lg_26_2">35,877</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_UgEQC5PF6kKDQ8gQHQJ3vQ_26_4">25,134</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_n_P7TeL_kk-mYBYi7Vvx5w_26_6">32,261</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_hagS0BXM00qceMe3n-1XaQ_26_8">93,272</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 represent 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 allocations, 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The acquired intangible assets are being amortized over their estimated useful lives as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" id="Group_oxJdUSth4kW4N4pj-QHVWQ" continuedAt="Group_oxJdUSth4kW4N4pj-QHVWQ_2" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:64.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:64.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">QuestaWeb</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Portrix</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">GreenMile</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_qEq7TAJGbUWDi902EO3iWg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_HKQe6eufWEmZ8rcy7ka2VQ_2_2">13 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_dLXciUyUp0ujzW8J9gIbPA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_T5mq7W4jcke-NnTc59hBBw_2_4">13 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_0_mws9CjSEi9zaG9wGYPrQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_eqCAGD_QZUee54tMRY2FBw_2_6">13 years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_9Y5S6N_X0EG0HQZeg2rKEQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_iE5wc4tKG0i2YF5uv-o_OQ_3_2">6 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_p9nNK7-Cb02XX7YZ31EYHA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_21RQh69aTU-nKLnB6jfVFw_3_4">6 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_LCFf39TyXEuWIUpt3uXoVg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_6r-mp5txp0S1-dqIZEw83w_3_6">6 years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_EWfnmDasXUiG5glp47JklA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_Nh3pnvKwHEaNWadXqYhmRg_4_2">3 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WcEylzAH80Wci6W4cTylsg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc__4ZMh9zX8U26QKupmSp8Ig_4_4">3 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_0fxE6yk620mFkQIAhrUiMA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_U3Yy9s_HmUaN8GBKhOjRuQ_4_6">3 years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_0znV3ErqU0W7ltG5tNNzlw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_p40EaM38E02sRO6VaYOAqg_5_2">5 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_IwiX329ID0OWzMgPqLvdHA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_HvqM2FDER0-fJEU0nA3j5w_5_4">2 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_iAWnsyaLHkGX5rClQmLyGw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_tH5vLabGiEWLISqTNTcEjg_5_6">5 years</ix:nonNumeric></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The goodwill on the QuestaWeb, Portrix and GreenMile acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the QuestaWeb and GreenMile acquisition is deductible for tax purposes. The goodwill arising from the Portrix acquisition is not deductible for tax purposes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2021 Acquisitions</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On February&#xA0;21, 2020, Descartes acquired all of the shares of Peoplevox Limited (&#x201C;Peoplevox&#x201D;), a UK-based provider of cloud-based ecommerce warehouse management solutions. The purchase price for the acquisition was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_21_2020_To_2_21_2020_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_cpr7JowY-0-fTELVxWuXZg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_cmjbjEXZ3EKP7vmTBQNtzg">24.1</ix:nonFraction> million, net of cash acquired, which was funded from a combination of cash on hand and drawing on Descartes&#x2019; </p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">23</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_Q6MHINbAf0W7DwOFZEylwg_cont2" continuedAt="Tb_Q6MHINbAf0W7DwOFZEylwg_cont3"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">existing credit facility. The gross contractual amount of trade receivables acquired was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_2_21_2020_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_g1PCOnoy6EW5BDn__nPeaw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_vWQ-Yg4H6kuQJXHZ8LcOsQ">0.4</ix:nonFraction> million with a fair value of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_2_21_2020_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_g1PCOnoy6EW5BDn__nPeaw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_cEK4vWxSXkS3sCCCqqDY-w">0.4</ix:nonFraction> 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 January&#xA0;31, 2021 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On June&#xA0;10, 2020 Descartes acquired all of the shares of Cracking Logistics Limited (&#x201C;Kontainers&#x201D;), a UK-based provider of client-facing digital freight execution platforms. The purchase price for the acquisition was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_6_10_2020_To_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_9r0d5j0vHkOZ65LLgwaf8Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_34Qd52Uw7Uiown1dOWPTLA">5.2</ix:nonFraction> million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_K2fv58fH3kidZbNiWe-ZLA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_wNyzAbDfFkiWHULhYfkFPQ">6.0</ix:nonFraction> million in cash is payable if certain revenue performance targets are met by Kontainers in the <ix:nonNumeric contextRef="Duration_6_10_2020_To_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_9r0d5j0vHkOZ65LLgwaf8Q" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_H0kR9iKcWkeWqbLiUuMVEw">two&#xA0;years</ix:nonNumeric> following the acquisition. The fair value of the contingent consideration was valued at $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_K2fv58fH3kidZbNiWe-ZLA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_T9_EHJOVW0qG8eaNaGLy-w">1.4</ix:nonFraction> million at the acquisition date. The gross contractual amount of trade receivables acquired was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_K2fv58fH3kidZbNiWe-ZLA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_hmvC_8vpF06_lEd7KnWc0A">0.2</ix:nonFraction> million with a fair value of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_K2fv58fH3kidZbNiWe-ZLA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_tyxUxv7dDUO_sV3NWbFkdA">0.2</ix:nonFraction> 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 July&#xA0;31, 2021 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On November&#xA0;6, 2020, Descartes acquired all of the shares of ShipTrack&#xA0;Inc. (&#x201C;ShipTrack&#x201D;), a provider of cloud-based mobile resource management and shipment tracking solutions. The purchase price for the acquisition was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_11_6_2020_To_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_Lq0x8Dst1Ua4ndrbhaCCBA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_SZWSG6IPvUCVkuc0z1os_Q">19.0</ix:nonFraction> million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to CAD <ix:nonFraction unitRef="Unit_Standard_CAD_U4lm8KFyrE2-58IWVu9ONA" contextRef="As_Of_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_CZlLc3PkPEGHTiG_tcT0tQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_0-8SG22ABUaSGS_lOIK24Q">25.0</ix:nonFraction> million in cash is payable if certain revenue performance targets are met by ShipTrack in the <ix:nonNumeric contextRef="Duration_11_6_2020_To_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_Lq0x8Dst1Ua4ndrbhaCCBA" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_jsLidkfBRUy2qA0NeJuo3Q">two&#xA0;years</ix:nonNumeric> following the acquisition. The fair value of the contingent consideration was valued at $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_CZlLc3PkPEGHTiG_tcT0tQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_AO2_2yUp_kO2hXeX45u3Rg">2.8</ix:nonFraction> million at the acquisition date. The gross contractual amount of trade receivables acquired was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_CZlLc3PkPEGHTiG_tcT0tQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_VzfmOiRdokCrDEtK_BvOkg">1.7</ix:nonFraction> million with a fair value of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_CZlLc3PkPEGHTiG_tcT0tQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_SZUTIc160kKgXrxc6qqxGQ">1.7</ix:nonFraction> 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 October&#xA0;31, 2021 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">24</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_LexsrHbrtE-M16ghTfXK-w_1_2"></a><a id="Tc_DaY01ZbZMEmbZvd_VGNU8Q_1_4"></a><a id="Tc_Tw4YeSd-f0KFcXP4I1WkZg_1_6"></a><a id="Tc_6tAHw_HMgkOnrmbDj7cPsA_1_8"></a><a id="Tc_5_OwPxq2UEuFV8-p4Vm17Q_2_0"></a><a id="Tc_UPdBdpPweU-PS8uOV6AlHw_3_0"></a><a id="Tc_kP_XqHZZgECbhTHCFfGx8w_4_0"></a><a id="Tc_NIM1uhjcqEOnbHgpPHW2ag_4_2"></a><a id="Tc_B2Zy9TyqWEik_n8qmtGpfw_4_6"></a><a id="Tc_twUvzfWohE6EA4TzFx78UA_5_0"></a><a id="Tc_sQiVJAQCykGpZwvrc4HlhQ_5_2"></a><a id="Tc_IB_uKzroy06386tglo3u2w_6_0"></a><a id="Tc_YjHoSOk_FE2MgJcxNZ5ztQ_8_0"></a><a id="Tc_c4GsycHOL0SGdhWVMZ-SIA_9_0"></a><a id="Tc_dmL0j3WboUu5GJTW4PYywA_10_0"></a><a id="Tc_NcY9ObPhZk-fiP4NV6ZPhg_10_2"></a><a id="Tc_dhaJBvPSJEGUtKht15E2Pw_10_4"></a><a id="Tc_in58Nhy_ok-EPpV1RnYQxw_11_0"></a><a id="Tc_gKZlwDPY6E-J2XD8zLlY5A_12_0"></a><a id="Tc_pkKOCnQV4UqjdecWdDrE4w_13_0"></a><a id="Tc_NnHwX7IxdUyn_RiEaQ7C_g_13_2"></a><a id="Tc_pTV1rLnPMU6ZEOopF7swbw_13_4"></a><a id="Tc_0KSnXaUEVUWbac3H5YQMPg_14_0"></a><a id="Tc_ekekP8bk-U-mGgijDk8U5g_14_4"></a><a id="Tc_q4DsPu-PAUev_NCRQZYC-g_15_0"></a><a id="Tc__klTTcqP8EGrat9Tl0O-oQ_15_2"></a><a id="Tc_cByB3bk6BkevohV3vLeUGg_15_4"></a><a id="Tc_PhvFMKY1eU2uZ2_7ylsM8Q_16_0"></a><a id="Tc_DDGSrqQkaEeULlDzrkqulA_17_0"></a><a id="Tc_ILTO1x-dEkCpm7vLD2zehQ_18_0"></a><a id="Tc_MrSJNtBQfkKT8mAXTY__cg_19_0"></a><a id="Tc_AhpXNtMj5UK0pGj0NYkMMQ_20_0"></a><a id="Tc_-Ko-2nprW0atmGRxO-MmUQ_20_2"></a><a id="Tc_978GsMiiUECxSfCND-mOzw_21_0"></a><a id="Tc_O7RCT5c1akmzpk1unZ0Sbw_22_0"></a><a id="Tc_K9RGAaEw9UmvaotHQkRGHg_1_2"></a><a id="Tc_s_COf5xw50yK5K980F-0Nw_1_4"></a><a id="Tc_9uAGdpuWJkCRtWp380HGZA_1_6"></a><a id="Tc_UBmxms2iSUqjDupnuSymCw_2_0"></a><a id="Tc_u8OvHHU9eESCqneiIvNAuw_3_0"></a><a id="Tc_c3pP3btQNEmqvJNDAjVf8w_4_0"></a><a id="Tc_FVYvs2BWT0utX2rRYVi1JA_4_2"></a><a id="Tc_R7LJaExigkah2pkf8p4e5Q_5_0"></a><ix:continuation id="Tb_Q6MHINbAf0W7DwOFZEylwg_cont3" continuedAt="Tb_Q6MHINbAf0W7DwOFZEylwg_cont4"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The final purchase price allocations for businesses we acquired during 2021 are as follows:</p><ix:continuation id="Group_3P00127brEOEmsYnGyEEtg_2" continuedAt="Group_3P00127brEOEmsYnGyEEtg_3"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:55.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Peoplevox</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Kontainers</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">ShipTrack</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Purchase price consideration:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash, less cash acquired related to Peoplevox ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_d4VDZ5FAlkOVqXnaPM8TZw">1,634</ix:nonFraction>), Kontainers (overdraft of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_YihaxElVnU290btT0ouIow">13</ix:nonFraction>) and ShipTrack ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_yFAQ53HphkunQNMNri1NQA">529</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_1JOLpgGfEUCbODYfQ_k2-Q_3_2">24,137</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_m8uaca1dXEK_ad-GVTpXzQ_3_4">5,237</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_Y8iTlHwoxUqMtYosXe1F_Q_3_6">19,029</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_wl3tCrNTuUC0zouoHZaXcA_3_8">48,403</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Consideration payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationConsiderationTransferredPayable" scale="3" id="Tc_aEeco-QQo0mVyRMXKDnHQA_4_4">100</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationConsiderationTransferredPayable" scale="3" id="Tc_y6Y3n5bJiEWUF0TGHmQGYw_4_8">100</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_-JRUf7Ytgkm2dIi-3Yt_gQ_5_4">1,414</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_C-PCZixfw0e5rkBkDCMKOA_5_6">2,825</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_G83Jwf57jEeOyMr1ldFuAQ_5_8">4,239</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net working capital adjustments (receivable) / payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" sign="-" scale="3" id="Tc_XIJLKxKeU0Woctlgzwv-Rg_6_2">42</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" sign="-" scale="3" id="Tc_8qfYqMUguUOctiNJKKuAoA_6_4">87</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_lb_gVbL3dEantuC9wAkawQ_6_6">64</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" sign="-" scale="3" id="Tc_7efEEU1hIUCoBGZg0wN_Jw_6_8">65</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_rfeJlI6uekGBgaD2J33h4g_7_2">24,095</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_5C80LQwrdUix2YLDS-z1KA_7_4">6,664</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_RUnyYqtOekqeba6froRLLA_7_6">21,918</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_TSkG-NxDk0SkmPRktceUrg_7_8">52,677</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Allocated to:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current assets, excluding cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_TgTqkXE25k-yK4v4Bfv21A_9_2">485</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_JUg6IWEAvEmbELdsyCzFwA_9_4">469</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_S82EAk-35EmHNBspUoEeQg_9_6">1,853</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_aCVMGWDDD02PSsco6BW_0Q_9_8">2,807</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" scale="3" id="Tc_M0XHht6ghU6HfZI_Ls07kA_10_6">151</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" scale="3" id="Tc_50DJj1TjekuOp55kpOWxIQ_10_8">151</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_kdMsA7Yw2E-KgKgrDTyLpQ_11_2">776</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_5zpqp3TdjUCfBAf7smIvwA_11_4">1,074</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_4QiKLLW_R0qnDggw9aXXXA_11_6">693</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_yQlP-Na3HUuxpEWZFdPhSg_11_8">2,543</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_wjaekVJu60qMIVA1DWFsKw_12_2">748</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_P6sBCD58P0iLi4LLld93Ig_12_4">102</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_Duptgj9biUmYluAsMKo17w_12_6">204</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_0W3Zqxgv1UiMyUIpG4iOGg_12_8">1,054</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" sign="-" scale="3" id="Tc_r8xHxlItNEG39UtxD0arig_13_6">151</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" sign="-" scale="3" id="Tc_SQAcbDCOskimsJ61SnjlYg_13_8">151</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred income tax liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_gqmvF7ff20-AvXPHBWmjuw_14_2">1,615</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_pYgeCJTsxkS3nj_Fvd0v1g_14_6">4,012</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_vO0Wjzv6TUyGgUOKhh8TkA_14_8">5,627</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" scale="3" id="Tc_8eNMQG1BhUOOpFiVdbtsBA_15_6">728</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" scale="3" id="Tc_xsSbGUb5YkiChoSpcQhPGA_15_8">728</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net tangible assets (liabilities) assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_RZr5gK171keJdvgwpIjoNg_16_2">2,654</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_LPuOiiCryUCI7KhZ-7YLZg_16_4">707</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_M2VrMfsQDky5qCVVEKoZeA_16_6">3,784</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_Dm-PjY5RqEyxyGqLzcrXGg_16_8">7,145</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Finite life intangible assets acquired:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_QJZLisK4mEeWaMAJN6xUGQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_MvJsTKogbEWHHRLYT9mfhQ_18_2">3,631</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_tWFqjq24p0qwaoSd7wglwQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_rRIYT76I4EeoFYijVTz_oQ_18_4">800</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_F10gJ1_3qU-xnghG6KhaUg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_JALoqlQgmkyUfb-s-4ofJA_18_6">3,905</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_L2luSBQ0CUOmWlJlGBgiVg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_lcTz9cpp1ki91XIGGBwuSA_18_8">8,336</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_C1u53VpXhES2Twr8_VV-IQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_1jgkPeWY-Ea9VlWiTXgKlA_19_2">7,651</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_JKz_hchtG0y_TKM9VtPhiw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_WaXgHRiWo0KdozJ6y4lK5g_19_4">3,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_TAOskhj0qUKmj6GOUiAGpA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_dp6xzEVjKUuVYLPgqgDqgw_19_6">11,102</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_KWy6P_GcCU2aIEIfwf-H6Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_9NcfESfmv0-9aOZDGMnHBw_19_8">21,753</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_QwWpdt93TUeOUO1vd2ekLA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_lSZaDROQqUagTtdn26pwLA_20_4">30</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_1Ab9pJ7f9UOYPNdjET5WSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_OcLpp9ChP0KqcoWhp1lGzA_20_6">77</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_Luy4xt2ioU6wUP9Q5BVL-g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_rNbgpbu7m0uIcEXfGdjWKQ_20_8">107</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_A1Zc-28a10KJsK2k_TNjow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_R-m1AOntakydBvqWLAKCcQ_21_2">285</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember__0iDAnSQ8kOD7SH6qjdtzw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_Oc0tF1_tDEubdbBwzho1iQ_21_4">80</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_sB4ayHA7TkuJDMCz0_LAiw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_gjqmKU9uHUy-wWr5KQw1JQ_21_6">291</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_AY9M0d4raU-ckFXOR_VPaw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_1YcBZ57Z7kOGWbHDhC_UMQ_21_8">656</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_n_NTjGxj5Ua-uMXFZtrMbQ_22_2">15,182</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_zhwiJo3WHEmi0QOZoxmP9A_22_4">3,461</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_HuZwabQTfkyees77BlKb2Q_22_6">10,327</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_zZFh64kRDEa6uZbsQGQgOA_22_8">28,970</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_bCGl6mM76EykQrYNQU1V7Q_23_2">24,095</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_x55J5djSoUO2F22YSnE2tQ_23_4">6,664</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_SzqVlgGn60-EMZ1QraeMgA_23_6">21,918</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_Tf_BtNQ9bEu-Q2kgnlHBpg_23_8">52,677</ix:nonFraction></p></td></tr></table></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The acquired intangible assets are being amortized over their estimated useful lives as follows:</p><ix:continuation id="Group_oxJdUSth4kW4N4pj-QHVWQ_2" continuedAt="Group_oxJdUSth4kW4N4pj-QHVWQ_3"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Peoplevox</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Kontainers</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">ShipTrack</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_OpXQurELgE6ZWTVHR5cUXw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_HjEMLtLWoEOS9vz9LtZ-iw_2_2">10 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_96aa9pGyvEmPVHgyuRze9A" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_PG7Z_2eUTkCjFRVSjrMINA_2_4">12 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_iYJrinNx8US3_JDS2i61jw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_sA5DsHZVEEmDZZrGI2hgmQ_2_6">13 years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_82Kvl8sh4kORcU3Z9dFzFQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_xmDMmZ8GpUKJ8uMHALAoCg_3_2">6 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IbJEW73HBEy57YRp8uftKA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_ZL-sNYb7Tk2Xmr04osVK3g_3_4">5 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ZI94cnnyBUqO9mu597uobg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_chTk5bVVs0GUAgSKxdE0wQ_3_6">6 years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">N/A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_QY9PRynUCEuXIJeGAzYh8Q" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_diYCiitSp0K4yPGcJ45e8Q_4_4">3 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_mDe5LIEq1kizEWJo9aQLBQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_ojbBo-3QGEC5VYvzvqom4A_4_6">3 years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_HhPjaBaLAk--NZLKhCGl7w" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_PraeKA7mjECiKbuPU0mY5A_5_2">5 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_hgEDwWyEoEyqPhkAlio-Gw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_SMXjZxVZ0UmRc5jRZdY6dA_5_4">5 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ufh9C_8PX0q_er__XG15VA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_8eUPzYKVfEyYqX08Z4QZnA_5_6">5 years</ix:nonNumeric></p></td></tr></table></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The goodwill on the Peoplevox, Kontainers and ShipTrack acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the Peoplevox, Kontainers and ShipTrack acquisitions are not deductible for tax purposes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2020 Acquisitions</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On February&#xA0;12, 2019, Descartes acquired substantially all of the assets of the businesses run by the Management Systems Resources&#xA0;Inc. group of companies (collectively, &#x201C;Visual Compliance&#x201D;), 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. The purchase price for the acquisition was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_12_2019_To_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_XwzrU8ENo0OG_AANymt7Zw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_ZjyPRPPnekCO5Ral_-AbkA">248.9</ix:nonFraction> million, net of cash acquired, which was funded from a combination of drawing on Descartes&#x2019; existing credit facility and issuing to the sellers <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_12_2019_To_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_XwzrU8ENo0OG_AANymt7Zw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" scale="6" id="Narr_oLkm1RPz0UGzj3c3yZ7_JA">0.3</ix:nonFraction> million Descartes common shares from treasury. The gross contractual amount of trade receivables acquired was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_EWzTXDK11kuuajqtQLW5Xw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_25_hY9d7ykeAYXpml1DOyA">6.4</ix:nonFraction> million with a fair value of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_EWzTXDK11kuuajqtQLW5Xw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_19Z9DMJSU06iab9C1R1TJQ">5.2</ix:nonFraction> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_EWzTXDK11kuuajqtQLW5Xw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible" scale="6" id="Narr_vIdeMIEi00u_RFdcNnlqdA">1.2</ix:nonFraction> million. The purchase price was finalized in the three&#xA0;month period ended January&#xA0;31, 2020 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On May&#xA0;10, 2019, Descartes acquired all the shares of Core Transport Technologies NZ Limited (&#x201C;CORE&#x201D;), an electronic transportation network that provides global air carriers and ground handlers with shipment scanning and tracking solutions. The purchase price for the acquisition was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_5_10_2019_To_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_JMmmRI9sbECGGlYuO1HaJg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_ttaDRm-uxkCdlhYFLjLy1w">21.8</ix:nonFraction> million, net of cash acquired, which was funded from drawing on Descartes&#x2019; existing credit facility. Additional contingent consideration of up to $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_UdmFWIytNUKEePP1VREI2Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_rt5tAuxho069Sh0hLbCE3w">9.0</ix:nonFraction> million in cash is payable if </p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">25</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_Q6MHINbAf0W7DwOFZEylwg_cont4" continuedAt="Tb_Q6MHINbAf0W7DwOFZEylwg_cont5"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">certain revenue performance targets are met by CORE in the <ix:nonNumeric contextRef="Duration_5_10_2019_To_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_JMmmRI9sbECGGlYuO1HaJg" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_ZZ5Mp8v9q0epq9gmwwPqDg">two&#xA0;years</ix:nonNumeric> following the acquisition. The fair value of the contingent consideration was valued at $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_UdmFWIytNUKEePP1VREI2Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_hDmzNTRM4kCR9haq0QpBog">1.5</ix:nonFraction> million at the acquisition date. The gross contractual amount of trade receivables acquired was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_UdmFWIytNUKEePP1VREI2Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_okueL9nGY0uB-pgMGhZRgQ">0.4</ix:nonFraction> million with a fair value of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_UdmFWIytNUKEePP1VREI2Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_st10ITkTKkal_Xg3ojyYQg">0.4</ix:nonFraction> 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, 2020 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On June&#xA0;27, 2019, Descartes acquired all the shares of Tegmento AG and Contentis AG (collectively, &#x201C;STEPcom&#x201D;), a business-to-business supply chain integration network based in Switzerland. The purchase price for the acquisition was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_6_27_2019_To_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_m7ZQo6l4GEGBffNZAjZ1cA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_-AcbS3nFSUGMLYLkZTQ0tg">18.6</ix:nonFraction> million, net of cash acquired, which was funded from drawing on Descartes&#x2019; existing credit facility. The gross contractual amount of trade receivables acquired was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_LhkN6ua3y0WxshKVcjKCGQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_KID1Ve1fakCqq4Nd-4kHZQ">0.9</ix:nonFraction> million with a fair value of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_LhkN6ua3y0WxshKVcjKCGQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_BViOkQ6SjUaoxdaNDJynlg">0.8</ix:nonFraction> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_LhkN6ua3y0WxshKVcjKCGQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible" scale="6" id="Narr_tpaeq8ZX1Ue2sQD92_zU1g">0.1</ix:nonFraction> million. The purchase price was finalized in the three&#xA0;month period ended July&#xA0;31, 2020 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On August&#xA0;20, 2019, Descartes acquired BestTransport.com,&#xA0;Inc. (&#x201C;BestTransport&#x201D;), a cloud-based transportation management system provider focused on flatbed-intensive manufacturers and distributors. The purchase price for the acquisition was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_8_20_2019_To_8_20_2019_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__K_CKExkQUGKL4V6QnHqHQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_wwTyNga6DkegOhbzwQ_avQ">11.7</ix:nonFraction> million, net of cash acquired, which was funded from drawing on Descartes&#x2019; existing credit facility. The gross contractual amount of trade receivables acquired was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_8_20_2019_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_cFf-BZNtEUyExQjSmseeCw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_SkFk1WcTo0uYEsZZIg7lzg">0.6</ix:nonFraction> million with a fair value of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_8_20_2019_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_cFf-BZNtEUyExQjSmseeCw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_cbDyriz82kC9AvEugImVdw">0.6</ix:nonFraction> 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 July&#xA0;31, 2020 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">26</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_5epSrAAlZEGzEm_MOqt44A_1_2"></a><a id="Tc_hB1UePvGakuMcCiq1Fi6rQ_1_6"></a><a id="Tc_pW70wMEJ5UOQGKr1TrX-SQ_1_8"></a><a id="Tc_1GpkWwK_RUSrAvUiudQcDQ_2_2"></a><a id="Tc_5ac47kev_USZShqZdAQ4UA_2_4"></a><a id="Tc_PNK8CS0kh0aEFyrW7uYLvA_2_6"></a><a id="Tc_mPGCcEzKREmL4c-5UNOyvQ_2_8"></a><a id="Tc_tWuXyVeuJUyT_sELpLDYsQ_2_10"></a><a id="Tc_fwfDTi6NGE60Ly48QEGX6g_3_0"></a><a id="Tc_BC35kJke90aB7NMlsVfrFQ_4_0"></a><a id="Tc_Z0dmLfNu9E6c7ga3ULOF4w_5_0"></a><a id="Tc_Il-HT464YkGlTOlN7sr86g_5_4"></a><a id="Tc_3Vijjygz90eknELitRQNQw_5_6"></a><a id="Tc_F_4kOSS9MEaZdhxP-0YF-A_5_8"></a><a id="Tc_T7ayoAzhAUilbIOLfMv62w_6_0"></a><a id="Tc_v-nRLgLrVkOSQp_mY0C2Cg_6_2"></a><a id="Tc_HkAgsqTry0CzxrVK1OVxiQ_6_6"></a><a id="Tc_QSG6Z1hBUkKujJlh8vRRYw_6_8"></a><a id="Tc_zFtmQCYX-EeASeXvWTxzrw_7_0"></a><a id="Tc_ksQVObuFWUiZcuSOdqLJJQ_7_8"></a><a id="Tc_PsakWGinNUyecDvlW2II4Q_9_0"></a><a id="Tc_ZEgxfq2hk0K_F4r5hwhVxA_10_0"></a><a id="Tc_K2rNUTj-10uk2oH9dRVzUg_11_0"></a><a id="Tc_VSmipqHlokKODDNL6brywg_12_0"></a><a id="Tc_LSLaaLh-FECMJogic4RCeQ_12_4"></a><a id="Tc_2WWy6tSrZkOdy7c9km9jAw_12_6"></a><a id="Tc_w_MTn_Jb40q9_5mVjKEzlA_12_8"></a><a id="Tc_UPtHG0hS1UKyX89VfGMCGA_13_0"></a><a id="Tc_LtZ0Bj_vEU-wr9OYLt_S5w_14_0"></a><a id="Tc_og5WaBYlcEKMlD3VXfnDvA_15_0"></a><a id="Tc_wgqd3bo51EKWWw1sfAsnog_16_0"></a><a id="Tc_sSaz_HBOkEuysd1FsgpemA_17_0"></a><a id="Tc_SqlHo0yV6ESgnMP4ixVKbA_18_0"></a><a id="Tc_48jeLLP42UykEnqqn4RORw_19_0"></a><a id="Tc_15lM_9WPHkiIMy9eR8gsng_20_0"></a><a id="Tc_PXYm9LtcJ0CZPtilgb8ZmQ_21_0"></a><a id="Tc_fpSXMuSrIkugJijrSTWeuw_21_6"></a><a id="Tc_JfgNFZE1REShbi0FUZw-cw_22_0"></a><a id="Tc_jk4uMxXev0iwGihA7RhCkQ_23_0"></a><a id="Tc_06f--0fRAEOhsQsSnBQSfg_24_0"></a><a id="Tc_2WI6hTKhcU23J_JNmwJt4g_1_2"></a><a id="Tc_didch7IjxESExTJggzrafw_1_8"></a><a id="Tc_aR2sUi-Fl0GaIl7zqbU6xA_2_2"></a><a id="Tc_9B_lj_ZFr0W8Svt6_gt-4Q_2_4"></a><a id="Tc_O2Ecwj0QBESSxfd1W7doQw_2_6"></a><a id="Tc_fTttufCgdEmPLdy3G8j-SA_2_8"></a><a id="Tc_f2aeUyk-tUisnl8iaYx_ZQ_3_0"></a><a id="Tc_S8fAPK_Iy0WSPqk8mCi0SQ_4_0"></a><a id="Tc_0YkqlX1EoE6ZgGQcsK1abQ_4_6"></a><a id="Tc_2-BJoLM2eEagURsIgih_yA_5_0"></a><a id="Tc_5W6Yy3SC00aQfPfhQKCHRg_6_0"></a><ix:continuation id="Tb_Q6MHINbAf0W7DwOFZEylwg_cont5" continuedAt="Tb_Q6MHINbAf0W7DwOFZEylwg_cont6"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The final purchase price allocations for businesses we acquired during 2020 are as follows:</p><ix:continuation id="Group_3P00127brEOEmsYnGyEEtg_3"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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;white-space:nowrap;width:48.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Visual&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">STEP-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Best-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Compliance</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">CORE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">com</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Transport</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Purchase price consideration:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Cash, less cash acquired related to Visual Compliance ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_5H3DW5hPWke4et_Hp7jHVQ">170</ix:nonFraction>), CORE ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_jr-l1vF2zk-ewo58gJBC5Q">213</ix:nonFraction>), STEPcom ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_gHW1CMYwFUCU_212GNFc1w">2,700</ix:nonFraction>) and BestTransport ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__FM86vXOh02yrHBKuD8f4g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_geJr9vEiF02btJoqQH6jRQ">507</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_DPFjpyjGmkSrRnoHThbPSA_4_2">239,863</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_Q9sim2QKAkOy9oe44U_a_Q_4_4">21,833</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_gJk4F-VEmUy1x-YM1ZQ0Nw_4_6">18,639</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__FM86vXOh02yrHBKuD8f4g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_fN4F9DEtMk-LSQDNe5DHUQ_4_8">11,718</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_BeksGAraS0-x8Ttd_Ud3iQ_4_10">292,053</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Common shares issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" scale="3" id="Tc_nDUCumT790Gr1q83r__BYg_5_2">9,045</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" scale="3" id="Tc_xvUa1zZ4ak6xLlTeO3PTDg_5_10">9,045</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_a9at7Vyue0yKjdrVTziOVw_6_4">1,450</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_dZUHuGLB_UuDGPn_lm3GIQ_6_10">1,450</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Net working capital adjustments payable / (receivable)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_AuFFUkV_yk-h6Rr15dyz8Q_7_2">1,147</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_7vG-vR1A-kKNlk5QUXySNQ_7_4">62</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_oRD_17vJvUCUi0hb8sRc1g_7_6">250</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_ldvjwRCs3E2pPD5SDlsykQ_7_10">1,459</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_uJZ6OXKTQESqiUiGO-O5Dg_8_2">250,055</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_PFjkkLO1g0eQA0ywQzTnug_8_4">23,345</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_LOnspsTIVk6nR1YSzUPcAw_8_6">18,889</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__FM86vXOh02yrHBKuD8f4g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_RWMOfeHglEaLcVhckaC6jA_8_8">11,718</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_1BdU5kyKoUOrfgrR_gO6Yg_8_10">304,007</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Allocated to:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current assets, excluding cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_W51GMnHjDE6yCR5eBL1nHA_10_2">6,403</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_Su762MHibUGgFjpdQDK1ug_10_4">689</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_17ee1wWOEE-r9MBemTIONw_10_6">1,470</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_ssiyZHYLq0W6w5OBPhU18g_10_8">815</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_QDap4X7BeEWSbWYHs6k-bQ_10_10">9,377</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" id="Tc_vswfjp4WTUePHJGX4m2InA_11_2">30</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" id="Tc_vzcjyMb3gkaFmeyNq8V4XQ_11_4">2,048</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" id="Tc_xKSLZKGN2UC8LkTa0VYXgA_11_6">257</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" id="Tc_71Ggoo1tSU6FZ0jA4A3GqA_11_8">35</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" id="Tc_BdOXAe3YuEeXhTRLlhvXsg_11_10">2,370</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred income tax asset</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" scale="3" id="Tc_uuJw3IGmiEuZCKLiWFFV1Q_12_2">30,924</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" scale="3" id="Tc_zhzCSLJr802CL0MDxm3ynA_12_10">30,924</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" scale="3" id="Tc_otCdP3lR606dAt0V_GBCWg_13_2">1,188</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" scale="3" id="Tc_cMeM3T30BUKZj_VsTBid4g_13_4">68</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" scale="3" id="Tc_WXUPZK9yrEmv08n97JjPAw_13_6">232</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" scale="3" id="Tc_9auMfLyvOkyVSWv07CNZpA_13_8">194</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" scale="3" id="Tc_vDG73zVnhECHEy0uiOgabQ_13_10">1,682</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_g6omwkCglU-81R2cvk1ApQ_14_2">840</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_EXDiVtjgNECHT90mN5o6uw_14_4">352</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_thVSrzBcokWNWsYXVBrZBg_14_6">874</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_b3-lOxCVs0WklzwQwdhCGQ_14_8">284</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_dsB7dMqNqkybz9XembrV_Q_14_10">2,350</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_p4N37T4NokC1TM-ULzYPaA_15_2">10,267</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_DTb8DQ_nUEivEFay5X54UQ_15_4">278</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_T9YpGJnE-Uu7-Tt9A8wACg_15_6">813</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_gZ_PqXjVoUWNIvKsTegJ2w_15_8">9</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_-ZGzLMVvOkOSbGHZoqIc6g_15_10">11,367</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" sign="-" scale="3" id="Tc_pDJXVxSozkmwbGbfTkOTyg_16_2">1,188</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" sign="-" scale="3" id="Tc_-pmhEufc9kaGzzS6EHfkig_16_4">68</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" sign="-" scale="3" id="Tc_RbjLaaIKtEGPb5XXfsvgYA_16_6">232</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" sign="-" scale="3" id="Tc_nAImTXl0TU-jqjorYrE5OQ_16_8">194</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" sign="-" scale="3" id="Tc_tMgtPCxa10ybBFqBcRMq3g_16_10">1,682</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred income tax liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_Axk5ozC_xEihp_kYCjr24w_17_2">282</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_gaeMC0fIe0GceF10Pd1ikw_17_4">3,332</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_o6iaTj4R1kalCJV5yqkxIg_17_6">2,316</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_O0pKBPJxxkWstxlXFZ7k2g_17_8">1,352</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" id="Tc_I7o6qUkSNkKTA2JOfkzu6Q_17_10">7,282</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net tangible assets (liabilities) assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_brGuftI2kUWCHbPPu3FiVA_18_2">25,968</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_IWkO-Ld94kijSomw0O_3GQ_18_4">1,225</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_UuEhWptcnUa9ZVVPaCHnHg_18_6">2,276</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_WRm_IC_T90WZpr6mSCW-vA_18_8">795</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_1r4-bL5lNU--eFIyhNtwjw_18_10">21,672</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Finite life intangible assets acquired:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_-RiW0iv7UUCv1zdRGwiO-A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_eUC13U9VZUiaFaFWpgYIgw_20_2">32,186</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_UaWFtW-ymEac39ZpsOI9Mw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_CYk2s-rLeUG2sQGpEEVFrA_20_4">4,600</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_oO9lFQJTbUSxS7UXzSWnPA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_xNXTZmICi0m4Jvq_5FXgpA_20_6">10,839</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_GBIsGRYPq0KW3gkpF98WBw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_gjcGay9aRE-6hsiEIGNIPw_20_8">3,000</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_8lJAxmSWeUWeY2KhOn6Bhw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_8CtjcaHS5kmw0eZd_-R0Zw_20_10">50,625</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_EMjy3I83rEi_Uywh6-FkXQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_rqCFoQ5Z6keyIdI-zr2MXw_21_2">69,422</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_tGsJoTzniEuZ2nBbpcH4mg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_07YruI35X0yHTSBSvCsP3A_21_4">6,800</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_eTIEUugiW0yBBvixxgp-Yw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_VhToVvZpTkq3lFkKmfq4Rg_21_8">3,800</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_-z53bdCWJ0qfr2IOa7OwDg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_ZgoRlEQ2xE2jdfsfUOb_fQ_21_10">80,022</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_lZhiZbsAHEaZ1ucIjCKFUg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_9BVOytOCSESAJ8ng0jTeNw_22_2">528</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZQHQGJhj7USnLe7o6yF-LQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_f6tAzeeW1k-Ns89DEKUM8Q_22_4">200</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_JKgy9A0JoE6CxbpXp4agWg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_nVGp7R40TECTcN8r45RnsQ_22_6">102</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WUiitBuZxkaT_KhhU0_gnQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_aSUg67lxQUix3JHArSuspw_22_8">50</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9OPl-_NamU-8jPKQBsPFcQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_J-YgfD6Cp0KWmGo8gHlfLg_22_10">880</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_As8x__qscEqyyK1LbmzYig" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_ZF4ynbO5SE-UbbbpFdVYPg_23_2">3,166</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_xGBeHZqGfUecRTFn1FKezg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_OTdcBpkLlU2Lh9ehZRp6ag_23_4">300</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_qYfwYNOh80OpqM6Igh29dQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_h9kdPnzHLUiCVhK1FKRrAw_23_6">205</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LpDbjRYSq02nc1l1CVxsWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_aUQmitQ5ekydvF8bkrNwjg_23_8">150</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_DRyHZVXCOkG9NuodBL4_zg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_MLFXp7OrzkW9zIetAvB1hA_23_10">3,821</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_NkUbTM5mbkqnBMuBJ_aaBg_24_2">118,785</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_lWAyPVCTWECLzT8XlF3kNw_24_4">12,670</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_8RQY18PQ2EupCpimG2UmwA_24_6">10,019</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_GuqXnBfG-0-plWvlpqM-fw_24_8">5,513</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_9auW2CYjtki6xRRn8lT8Tw_24_10">146,987</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_hWQMuY89ykGHLzVhTXXRlw_25_2">250,055</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_dxpb7fkIa0iaKXHro7DkFQ_25_4">23,345</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_mZhkYwCFCU-5_0hViv94AQ_25_6">18,889</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__FM86vXOh02yrHBKuD8f4g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_x6A7vflIDkCilof6PfevuA_25_8">11,718</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_DF7CdhN_lU-ol-94Mi_6eA_25_10">304,007</ix:nonFraction></p></td></tr></table></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The acquired intangible assets are being amortized over their estimated useful lives as follows:</p><ix:continuation id="Group_oxJdUSth4kW4N4pj-QHVWQ_3"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:51.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Visual&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Best&#xA0;</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Compliance</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">CORE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">STEPcom</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Transport</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_toEokvOHmkGkRwW0VFGSFQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_wH6sPvBm3UeYPfhnY_eXIg_3_2">14 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_AodaZuJJhEmLGfk5vM_4Xg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_RWTXnAzQAkiF4j_Q1WeelQ_3_4">13 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_VI2m3FobU02SMVYSyVJ6CA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_s7lxPLlzkkCy-G21QxpmVw_3_6">9 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_clruato9GEygS8dCpkf03w" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_hmtrvHamzkqi9VubQzyfXg_3_8">12 years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_QslD97aGzUSmxgNUgo0gmQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_jOeTAGf0t0OaZYm6Zmb5sQ_4_2">7 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_NxVrBFDtfE2aU_eySMTHTQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_xxg-koh-vEmpha9I8GoIgw_4_4">6 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">N/A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_Rjjd1fsOdkG_a8K7mc9t2g" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_PgXrnJklSEie-OZWutyJmA_4_8">6 years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_-cen7Q9c80KeAvXRKzVkoQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_UOtQ__a0nkWi_9LRNMtSEg_5_2">5 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_upldn00obEaI0YwkfSbKKw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_EwasZOnWAkKhyQDC_8-wGQ_5_4">8 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_8vVpAF_3PUOLOUfUD_AZSA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_6CiEaOeQh0COt77Q37LUvw_5_6">3 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_MyJws-_XkEOnbAWEolXtkA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_UUpK7m_ziE2duv71tF-A7g_5_8">3 years</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_IlkBq9tWJ067uQ8n3RQeDg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_9jRPskRIY0yiHGOG2D5xuw_6_2">5 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_RFl-ivDUpkuM4gPqQc1uoA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_u-W9HIg7okSSv5N-EZdksA_6_4">5 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_vOSTvRk7qkWykSTBxtWbFg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_TrADC2MPbEGkWNMsMWBHgQ_6_6">3 years</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_M_zFBBQA-kCCKiZ0dMBFNw" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_soFHl4V80UayCdN-XZKdfA_6_8">2 years</ix:nonNumeric></p></td></tr></table></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The goodwill on the Visual Compliance, CORE, STEPcom and BestTransport acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the CORE, STEPcom and BestTransport acquisitions is not deductible for tax purposes. The goodwill from the Visual Compliance acquisition is deductible for tax purposes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Pro Forma Results of Operations (Unaudited)</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired GreenMile, Portrix, QuestaWeb, ShipTrack, Kontainers, Peoplevox, BestTransport, STEPcom, CORE and Visual Compliance as of February&#xA0;1, 2019.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 GreenMile, Portrix, QuestaWeb, ShipTrack, </p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">27</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_Bc4EA-bMME2duD-8-j3AJA_1_0"></a><a id="Tc_A37BeEI3REi-aBvGLMxqkw_1_2"></a><a id="Tc_mVL7KhkuDEC0kkmRu2fwig_1_4"></a><a id="Tc_yu4IGZRJ_U6Wc_bHEcds7g_1_6"></a><a id="Tc_8ppunfEI9E6fYp-5mv-tfw_2_2"></a><a id="Tc_WQC4UrEhH0mKsMmQzfv4sQ_2_4"></a><a id="Tc_mM1sq0FU30mfceSsusjwOQ_2_6"></a><a id="Tc_3NnqwyvjrUeMEG9AnRUqvw_3_0"></a><a id="Tc_7dutjwVHDEOeceWehJnxug_4_0"></a><a id="Tc_hqKCGoXfNUanaU1s6w6Y5w_5_0"></a><a id="Tc_JkauLBT-70Oe3IS4n8qtWA_6_0"></a><a id="Tc_Gq0G-S9nPkaqQKLt_CKE9w_7_0"></a><ix:continuation id="Tb_Q6MHINbAf0W7DwOFZEylwg_cont6"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Kontainers, Peoplevox, BestTransport, STEPcom, CORE and Visual Compliance occurred at February&#xA0;1, 2019, or to project our results of operations for any future period.</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:BusinessAcquisitionProFormaInformationTextBlock" id="Tb_0LCaiyIDhUCHvlWn7rlFEg" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:59.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" id="Tc_0Q0RF6mmhEykgNXsyR7Sjg_3_2">429,531</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" id="Tc_Y6QxSe2gnkOmuYqCeYrr8w_3_4">369,271</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" id="Tc_pNSuXOOkd02DxI63P_z37g_3_6">354,484</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" id="Tc_tvfC_bo_OkivKrPzvO-Qnw_4_2">85,549</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" id="Tc_7X13IxkCZU2t8rpdn0Ku0g_4_4">48,788</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" id="Tc_92sx1O2Y_k6jFRBDAschCQ_4_6">30,933</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic" scale="0" id="Tc_CFVcBUYiIkyZuS_11O9o4g_6_2">1.01</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic" scale="0" id="Tc_GEGy4Hrx8E6w6mA7VqL2bg_6_4">0.58</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic" scale="0" id="Tc_mkg5ehznvEaBbrQR0-EZ7A_6_6">0.38</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted" scale="0" id="Tc_PCKRQ5imH0aIvhN9CGCQFg_7_2">0.99</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted" scale="0" id="Tc_ZYUuLQ9tlEOphu0ANG81EQ_7_4">0.57</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted" scale="0" id="Tc_PCjC8wqlXkSAJtkk2Txywg_7_6">0.37</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_4_K6F6fbkEGnfq4Obpm48A_1_2"></a><a id="Tc_uWMLdqI4BUWSDmLD2-4jUA_1_4"></a><a id="Tc_NrOs0BHDn0Kh0oUoKMempg_1_6"></a><a id="Tc_H_f4YbkAaEOAt5mtFX6fuQ_1_8"></a><a id="Tc_40CrvXp_QEimpF09Jloquw_2_0"></a><a id="Tc_vP_ivzv4dketVzWs80UiYQ_3_0"></a><a id="Tc_bWLkwyAHh0m54aS4wXmb0g_3_2"></a><a id="Tc_s8yX15-S5k2IS5zprdt7YA_3_6"></a><a id="Tc_81Btw3WsIE2h0eKl7JkmZQ_5_0"></a><a id="Tc_6UjFYvg1S0-eDMy9QbEd5g_6_0"></a><a id="Tc_IzQIwpvQW0eHZa9mlMPmng_6_2"></a><a id="Tc_K5CSJ-rJC0uY0gA-G5Jakw_6_4"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:FairValueDisclosuresTextBlock" id="Tb_jNjDPZ_HMEiMRiyyS1iN_g" continuedAt="Tb_jNjDPZ_HMEiMRiyyS1iN_g_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;4&#xA0;&#x2013; Fair Value Measurements</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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, the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Topic 820 establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into three levels:</p><table style="border-collapse:collapse;font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:17.85pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:9.5pt;vertical-align:text-top;white-space:nowrap;width:17.85pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 1</span><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">&#x2014;</span><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:17.85pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:9.5pt;vertical-align:text-top;white-space:nowrap;width:17.85pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 2</span><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">&#x2014;</span><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:17.85pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:9.5pt;vertical-align:text-top;white-space:nowrap;width:17.85pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 3</span><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">&#x2014;</span><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">inputs are generally unobservable and typically reflect management</span><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">&#x2019;</span><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of January&#xA0;31, 2022:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" id="Group_k1TC8La-10yw_sXNSUwblQ" continuedAt="Group_k1TC8La-10yw_sXNSUwblQ_2" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:55.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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Level 1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Level 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Level 3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Equity derivative contracts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_z-O83c1_EUOg0PNZOSrN5A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_59TLOG2LBE6kwNc6DQ-cNQ_3_4">10,863</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_71LXGAtlIUC1kG67xPuk1Q_3_8">10,863</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_iXJAkxzkfEmbWhtNsF9DaA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_2KZLSq851k-d6Du0jhefVw_6_6">12,990</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_WjLoNjJvuE-oZF_Tm4_dgA_6_8">12,990</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">28</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_eeC7PCaf5kawisJlueLuqg_1_2"></a><a id="Tc_g0aljJTyKUybaR4WYeoQpw_1_4"></a><a id="Tc_92C0idwfzk6BnpsAGdFJ8w_1_6"></a><a id="Tc_e2mh3OFxR0S6vfNre3r1rw_1_8"></a><a id="Tc_hTIuW3SfVkyVSn8GMdprMA_2_0"></a><a id="Tc_Zo5jNhwUO0ygVdXcxfDQEQ_3_0"></a><a id="Tc_nXwfTxcdqUCI6sL3mDeLMQ_3_2"></a><a id="Tc_IAinEQEkR0imyeP42LgVAw_3_6"></a><a id="Tc_ZUyR9_B1P0iVVPD4uFM-7A_5_0"></a><a id="Tc_hyDtRJc8YkKxueeodhN6JA_6_0"></a><a id="Tc_T0JQ2hSYFUiI1wmt81rzBA_6_2"></a><a id="Tc_rpuAzZWl90ubIVI2ITRUvw_6_4"></a><a id="Tc_pwIp0XU3jkuX_BzUX7-sxw_1_2"></a><a id="Tc_elO4rJkvCEOadM3lJd34cA_2_0"></a><a id="Tc_HKaN4DSLP0y8kjgKnBYyEQ_3_0"></a><a id="Tc_GHJ_DsgXA0aDkJX0QScEGQ_4_0"></a><a id="Tc_IQQa95gZ_0quESQTKHz_1A_5_0"></a><a id="Tc_vIP7tYmWnUKMdrqT20GoYw_6_0"></a><a id="Tc__O5nJxSbYEOlYXGrkErrJQ_7_0"></a><a id="Tc_5pP06Tx0SUqtW6pybuLwBA_8_0"></a><a id="Tc_2qUM5DHL30SG1qxdhYb-oA_9_0"></a><a id="Tc_ts1whdYUWkKwNVGJWymJ8A_10_0"></a><a id="Tc_YkcYTP1u0U2zyvKGvgkQDg_11_0"></a><ix:continuation id="Tb_jNjDPZ_HMEiMRiyyS1iN_g_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of January&#xA0;31, 2021:</p><ix:continuation id="Group_k1TC8La-10yw_sXNSUwblQ_2"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:55.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Level 1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Level 2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Level 3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Total</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Equity derivative contracts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_RgbL7tZqa0-Mtc-SaBHNhw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_q2xtt0QLvUK9KGC2fXZ52Q_3_4">8,001</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_K2POk4-LpU6mROQC5jhw7w_3_8">8,001</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pN3gJRdEbUmTra2ded8SGA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_YzedxY9WbECKthcIpOzGCg_6_6">4,671</ix:nonFraction></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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_foWxIiwG4kykPk626CcNXQ_6_8">4,671</ix:nonFraction></p></td></tr></table></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 January&#xA0;31, 2022, we had equity derivatives for <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="0" format="ixt:numdotdecimal" name="dsgx:DerivativeInstrumentSharesOfCommonStockHeld" scale="0" id="Narr_835TlTmAPESv9gSvBdOiTQ">252,011</ix:nonFraction> Descartes common shares with a weighted average price of $<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="2" format="ixt:numdotdecimal" name="dsgx:DerivativeInstrumentCommonSharesHeldPerShare" scale="0" id="Narr_fpkO5t5zh0WJmwCnVA48sA">29.55</ix:nonFraction>.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The fair value of equity contract derivatives is determined utilizing a valuation model 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 administrative expenses in the consolidated financial statements. For the&#xA0;years ended January&#xA0;31, 2022, 2021 and 2020, we recognized an expense (recovery) in general and administrative expenses of ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_fDOL7lqI6U-y6cUkIlDJ-g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DerivativeGainOnDerivative" scale="6" id="Narr_NNdBX7VF6UW_nCTjejuoiA">2.9</ix:nonFraction>) million, ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_GmlB_N6orEO4bj1gBhlFpQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DerivativeGainOnDerivative" scale="6" id="Narr_t1QqrOe72UKi8nSf6KOAAg">3.4</ix:nonFraction>) million and ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_J1LSEqJWtUeeWzLBwEGttA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DerivativeGainOnDerivative" scale="6" id="Narr_hKRL4Oii40qqr4RhjvxpRg">4.0</ix:nonFraction>) million, respectively.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table presents the changes in the fair value measurements in Level 3 of the fair value hierarchy:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" id="Tb_vO_VutH63kW1ojQvGiwLPA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:82.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:'Arial','Helvetica','sans-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:4.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 3</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_CfGPFGAsT0yBB-18Em2TxQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_40XZBYNIGkC9FyF8iELdsw_2_2">1,924</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Increase from acquisitions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_4HEL19AECkW499iCsp6lQg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" scale="3" id="Tc_DSTYk_KY60WVQFr2a3vKoQ_3_2">4,239</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_4HEL19AECkW499iCsp6lQg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" sign="-" scale="3" id="Tc_pleq70LHyESgy3-EzGI--A_4_2">95</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Charges through profit or loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_4HEL19AECkW499iCsp6lQg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" sign="-" scale="3" id="Tc_MlTA31iXUE-vR2FcE4Omsg_5_2">1,731</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_4HEL19AECkW499iCsp6lQg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" scale="3" id="Tc_hoMe6Ik52Ue5pbHvJnqbYQ_6_2">334</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pN3gJRdEbUmTra2ded8SGA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_GvcpjayVbE-AGh8jZXRSFA_7_2">4,671</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Increase from acquisitions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_LYIvNCFuHkin3VL-ZTwqZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" scale="3" id="Tc_T4nHA-QbNkqzMbcNEp1eMA_8_2">3,339</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Charges through profit or loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_LYIvNCFuHkin3VL-ZTwqZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" scale="3" id="Tc_RjtfdxBM4E2RCX1EKyEnaA_9_2">5,070</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_LYIvNCFuHkin3VL-ZTwqZg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" sign="-" scale="3" id="Tc_WjHs3NdqXUqpIZ99l5mGRQ_10_2">90</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_iXJAkxzkfEmbWhtNsF9DaA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_dvwKgkRSykKJRcQyNfwOQA_11_2">12,990</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Estimates of the fair value of contingent consideration is performed by the Company on a quarterly basis. Key unobservable inputs include revenue growth rates and the <span style="-sec-ix-hidden:Hidden_v1hWYzs9B0OsbeIvMBY_nA;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">discount</span></span> <span style="-sec-ix-hidden:Hidden_pcGK0s4hq0-HLRSRmdjzvQ;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">rates</span></span> applied (<ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_x4G7EFWpMU67ejOu1XZTNg" decimals="0" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" scale="0" id="Narr_cA1zVXoQGkeagdxa2KJ4og">11</ix:nonFraction>% to <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_gQibUrB05UCy_-zIIsEmzQ" decimals="0" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" scale="0" id="Narr_h1qmS5nsUkq481bGeZNqNA">13</ix:nonFraction>%). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.</p></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc__b_m4xm4iUi-seVGyd9dgA_1_2"></a><a id="Tc_fh9z2Tl6ski4WDLAjz3IZw_1_4"></a><a id="Tc_dTvogkgkE02aWgDo9cQvLg_2_2"></a><a id="Tc_nTp3w9T62U-XzOvu3IPtyg_2_4"></a><a id="Tc_2f7Q_hqi2EOJzNDJ6Qaq3g_3_0"></a><a id="Tc_4qyo41GOnUCSIo9IRLy_gg_4_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" id="Tb_Kb58SBaGb0Gv52YQak3PMA" continuedAt="Tb_Kb58SBaGb0Gv52YQak3PMA_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;5&#xA0;&#x2013; Trade Accounts Receivable</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" id="Tb_P05KG3hAI06_BuAlGvIDCA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Trade accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableGrossCurrent" scale="3" id="Tc_rnVGKGq6nkOp4ijJyqJkKg_3_2">43,565</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableGrossCurrent" scale="3" id="Tc_0xwD6W-ymE-jOtI3A05Fig_3_4">39,536</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Provision for credit losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_ctiiw6bpSUqqY78-3s5GIw_4_2">1,860</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_abjhEU8dEUO0way_miL4Uw_4_4">2,330</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_E74FxQ4Zqkq3lyMG4FakeQ_5_2">41,705</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_jZyjdNkfuUSkYyYfarU8NQ_5_4">37,206</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Included in accounts receivable are unbilled receivables in the amount of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnbilledReceivablesCurrent" scale="6" id="Narr_MG_2m_7ryUug8m73yVDQhA">0.5</ix:nonFraction> million as at January&#xA0;31, 2022 ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnbilledReceivablesCurrent" scale="6" id="Narr_Sil0ViwY6Ey80K77vljRYA">0.3</ix:nonFraction> million as at January&#xA0;31, 2021). No single customer accounted for more than <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="dsgx:PercentageOfAccountReceivable" scale="-2" id="Narr_UcN8BN93vkyEMCPWJZSurA"><ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="dsgx:PercentageOfAccountReceivable" scale="-2" id="Narr_HZyhkE-Yp0WcufhIJqW3XQ">10</ix:nonFraction></ix:nonFraction>% of the accounts receivable balance as of January&#xA0;31, 2022 and 2021.</p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">29</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_CNqqZTIEikasYfyGp1vWvQ_1_2"></a><a id="Tc_iJUHnWHxyE6XOrdYoVpImw_2_2"></a><a id="Tc_x3umjPfeqEqUvolD8NM0Pw_3_2"></a><a id="Tc_Q6lvmra9Nk--pESJTdoVTQ_4_0"></a><a id="Tc_83D6L6L5M0ypKqvCveGamw_5_0"></a><a id="Tc_mSFY2GW3NUaoxHSu5U5Yuw_6_0"></a><a id="Tc_R3LZ_NY-xkyYPDevrrwP-Q_7_0"></a><a id="Tc_81KS6SLS6k2b9pOeO1O02Q_8_0"></a><a id="Tc_3I3cWsmlGkiJyPyK3rpW9w_9_0"></a><a id="Tc_TlfNi9WLTUuUsUfv0bL_PA_10_0"></a><a id="Tc_8A72zXwyZkqPP8mqqZzBbg_11_0"></a><a id="Tc_zqDxUmW73keBvQL7F7Ct7Q_12_0"></a><ix:continuation id="Tb_Kb58SBaGb0Gv52YQak3PMA_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The following table presents the changes in the provision for credit losses as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock" id="Tb_z457TqMN-0GvFiY_6HAzOA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:83.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Provision</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">for Credit</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Losses</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_Jefawrbj4EKI_QJvfDsY7w_4_2">2,003</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current period provision for expected losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_9J9Uek4dT0iJFnSRCwo4bA_5_2">1,681</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Write-offs charged against the provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="Tc_u0kFUdAvvkuFtI6fTuzRTw_6_2">1,418</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" scale="3" id="Tc_kTMLOsaTQkqEcXLb0j3h3Q_7_2">64</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_M5himV-tRkCs9CJ9BbTHMA_8_2">2,330</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current period provision for expected losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_G08wZx_izkaUBkvKPippRg_9_2">1,007</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Write-offs charged against the provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="Tc_hMweGj9HVUmIXnYtSkVsTA_10_2">1,456</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" sign="-" scale="3" id="Tc_tv9ajxmhWEKR8r3q3Cm69g_11_2">21</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_iXBTw9m9vkWgZKCdg2J1Rg_12_2">1,860</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_PueUEdkKDkq3bV3qrsPsLg_1_2"></a><a id="Tc_Tqp7FpDqfk6dXccnpJhfUA_1_4"></a><a id="Tc_hv8scZqtxkKJL81GOmMPcQ_2_2"></a><a id="Tc_MvLZ6tDrW0K6x9rMXmwXWg_2_4"></a><a id="Tc_bgoQDlVJg0KqTeVf7RIiTQ_3_0"></a><a id="Tc_7x1wQaCfAkKojy3sSGWdvg_4_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dsgx:OtherReceivablesTextBlock" id="Tb_5qerMWPbUEGI7a4P2L56VQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;6&#xA0;&#x2013; Other Receivables</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dsgx:OtherReceivablesTableTextBlock" id="Tb_EItDn506MES48OE6GPhujQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net working capital adjustments receivable from acquisitions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" scale="3" id="Tc_xyrFMP9pXkWbWhKfCbX7yw_3_2">309</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" scale="3" id="Tc_OWkbRYH7RkSJMWyUFQ7k_w_3_4">237</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsCurrent" scale="3" id="Tc_C2ZGKSrJa0iBpSsPqBn8Lg_4_2">13,766</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsCurrent" scale="3" id="Tc_QsT_z1Q8a0mfZS10kzT4YQ_4_4">14,593</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_xaOq76UER0OeIxybG_WgJg_5_2">14,075</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_LGLyNSE0r0WGcNGTS0dTRg_5_4">14,830</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At January&#xA0;31, 2022, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="dsgx:AmountsRecoverableFromFundsHeldInEscrow" scale="6" id="Narr_IoRG8b_I20-nqcEdTQN16A">0.3</ix:nonFraction> million ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-5" format="ixt:numdotdecimal" name="dsgx:AmountsRecoverableFromFundsHeldInEscrow" scale="6" id="Narr_ykyhjQHiakqpNWLaNzU7TA">0.2</ix:nonFraction> million as at January&#xA0;31, 2021) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.</p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:InventoryDisclosureTextBlock" id="Tb_U0P-GRLTcUOYrw9ILmXeHw" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;7&#xA0;&#x2013; Inventory</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">At January&#xA0;31, 2022 and January&#xA0;31, 2021, 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 the&#xA0;years ended January&#xA0;31, 2022, 2021 and 2020, a nominal provision for excess or obsolete inventories has been recorded in cost of revenues.</p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_Ge2mjGwEpUmwsvSJ8WmJFA_1_2"></a><a id="Tc_zw44Mr3tf028puvLjBHd8Q_1_4"></a><a id="Tc_aj_AW4iCkEaced_8XN9Z4A_2_2"></a><a id="Tc_T2Iyi-w-rkCst7GgtzpJ8A_2_4"></a><a id="Tc_SelSQQWXXk-rpyskEbXelg_3_0"></a><a id="Tc_7ZPgzQDCFEmj6-nKG3xDvg_4_0"></a><a id="Tc_W8fOaNFX5UiFq57Wt0r6Zw_5_0"></a><a id="Tc_Mt3nz0pT0ky8JHQCScS6mA_6_0"></a><a id="Tc_Zkqah7HR9EyFcekksQ0CKw_7_0"></a><a id="Tc_0FWBscDhlEun6IlYzNYB6w_8_0"></a><a id="Tc_9USPuKjtbUWFDKeYMaq-lA_10_0"></a><a id="Tc_b7Z1DpIrMEuXXtMJ8oMZ8w_11_0"></a><a id="Tc_Isuq9VnMZkq8XRMu9UVl0Q_12_0"></a><a id="Tc_4hZlGRSBiEK3QLpDAZrAMw_13_0"></a><a id="Tc_f93QDDjOtEylGC-9pEc3_Q_14_0"></a><a id="Tc_P8kWunPGAUC8unfVHIJ_rQ_16_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" id="Tb_AyLZTne4vEOF547qRuFBaw" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;8&#xA0;&#x2013; Property and Equipment</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="Tb_eYD_K3mCzEmWlp46ftvFcg" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Computer equipment and software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_hkrMSkRGkUGy4FaD2LwjiQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_LJOgLeusk0mxWmOwxChGWw_4_2">40,937</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_W2_efZk4UEOnz2T_FP4d-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_GpIlqlct10e4dxqoFlLbCQ_4_4">37,469</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_nbse0UCE-EW4cF_lZVKosA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_dSlNSEVWzk6xSMxR7HwtPw_5_2">1,553</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_vAEh8AqvVUyUGNT5U1AA7g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_RZnMGfQ2RUqMpW1xXS93mg_5_4">1,494</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_fxhEzFyKA0WbdTUOW2bHFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_g4S7OyEirUuzfRqfeZIirg_6_2">822</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_dpzYaXowaUGHEeOzNVoncg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_BYUuTnKdJE2OANmzkj2VSA_6_4">807</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Equipment installed with customers</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_KzJjuDmC6USUUUb1sEVUww" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_YzyOn0W37UeNEo0AHXXFwQ_7_2">1,635</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_IrgBNrYG-U-TRqB9u8qUuQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_ET4a7csA7Ea8bzS_O2DXXA_7_4">1,654</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Assets under construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_rp5iMx3Ih0K6_ViVYm6lkQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_3osC9HyyDkKXHTt03EwUXQ_8_2">524</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_4cdmB8XAmUyYsnIrVL3Ing" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_gkrXgUu-7E-otTjC02kouw_8_4">998</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_gfRz0u6FM0mfqvhqX4urug_9_2">45,471</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_-w30CTJ6v0WyJJblikWn0Q_9_4">42,422</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accumulated depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Computer equipment and software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_hkrMSkRGkUGy4FaD2LwjiQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_6finR1Y4aE-ZFTAns35Y3Q_11_2">31,660</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_W2_efZk4UEOnz2T_FP4d-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_QH7gI_3roEW0Ngbhcbu9zQ_11_4">28,123</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_nbse0UCE-EW4cF_lZVKosA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_E0nKywpzs02oy2_VUa6Fzg_12_2">1,257</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_vAEh8AqvVUyUGNT5U1AA7g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_VJMKLmWmXkCJ7hUXUQDHHQ_12_4">1,081</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_fxhEzFyKA0WbdTUOW2bHFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_KP3a2syy60eR8eiEdVSjaQ_13_2">531</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_dpzYaXowaUGHEeOzNVoncg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_MFzD9Rr42UGDsOeh05A7ug_13_4">401</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Equipment installed with customers</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_KzJjuDmC6USUUUb1sEVUww" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_dFg4bmp86Uefvot16_RyEQ_14_2">1,206</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_IrgBNrYG-U-TRqB9u8qUuQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_O8ENulML7UWBCcOcPiui-w_14_4">728</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_GLMGnaQcpkCwBjMpOnATmw_15_2">34,654</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_-V3EW-41kUCbfe1CO7zYDA_15_4">30,333</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_HAEc5p8vrEeA1U1rUjsAcg_16_2">10,817</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_taGTFEe6uke8AZ66g9oiFA_16_4">12,089</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">30</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_WLFTErlq3EWSW0-C5528UQ_1_2"></a><a id="Tc_8DqDHuD_kkqxZ4LShO5_hA_1_4"></a><a id="Tc_bITem2w-aUKtdx_Z2lS_Ug_2_2"></a><a id="Tc_dsBTj5-sT0iH5xsthWzn6A_2_4"></a><a id="Tc_Mv5M0b8jFUClNPHd_Yfccg_3_0"></a><a id="Tc_JR-z6fhZM0OQla5tMufgHg_4_0"></a><a id="Tc_QxBugzeiZEqnfbfjh8vyrQ_5_0"></a><a id="Tc_8lKl4eOi2ky6G_QMRzpneg_6_0"></a><a id="Tc_PnOMpOuMo0SRUGP2q5CCFA_7_0"></a><a id="Tc_JZ-iFwXTR0S18pXiw8IDAg_9_0"></a><a id="Tc_DRb4r6sPLkqgu4fxn-BV_g_10_0"></a><a id="Tc_gK1FnMQoZE24n74rXPu0jw_11_0"></a><a id="Tc_N1G406GLvUeUEe_2037TeA_12_0"></a><a id="Tc_assxA8eS90qiYnJLDOlm1Q_13_0"></a><a id="Tc_5rOxSSyQA0u3BMH5fRomOQ_15_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:IntangibleAssetsDisclosureTextBlock" id="Tb_Iw2AKHY93ES33OoYfZ6-4Q" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;9&#xA0;- Intangible Assets</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="Tb_sDKbD-u6iUiMKMLl8nzAAA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_rGPZE8F7EEGVhjUZw2M6eA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_fPHjC7bDtUy5s1bz6twrrw_4_2">251,402</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_t1zQKq9u2EG0psuawWuKvg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_e39pUU_aDE-1ninmrKfBwA_4_4">240,479</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_KidyCChL90K5qlmRPwH-NQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_GM-mTUdTIkuciinn4FOtsg_5_2">326,411</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_JbBgq5JeqkeJmJpd6Erqqw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_btv9C5h7sk2A51JhctwN2w_5_4">295,161</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_0a47ECpsREmTvHqq58lxlg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_l1ZfkvRD_EaAK9t-Z4hQTA_6_2">9,038</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_DpHhSXHT30WFldVT8ub07g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_LKLiMq3yrkeV7vKc7zSvVw_6_4">8,844</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_AQeERyWeAUmcM8TN2dBtng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_gdK5lcXUa06-jsBb17lxjA_7_2">12,306</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_nhQYimyVwEawwo6fkcZKtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_xd4Xqm6co0O8OlshZVHSJg_7_4">10,939</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_Q5po1cVnI0aaKBe-4kUsdw_8_2">599,157</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_wTLn3vEuG0ma5jWBZh4z_w_8_4">555,423</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accumulated amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_rGPZE8F7EEGVhjUZw2M6eA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_SuAsEoGZiUKNd2T9E1jbyw_10_2">135,380</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_t1zQKq9u2EG0psuawWuKvg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_j-8iBcYLL0WaPC_uIscd2w_10_4">119,361</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_KidyCChL90K5qlmRPwH-NQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_bFnZNWXf9EapRGLjLUdh7g_11_2">218,953</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_JbBgq5JeqkeJmJpd6Erqqw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_4ph-CWV4WE2JeGtBR1JLdA_11_4">183,539</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_0a47ECpsREmTvHqq58lxlg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_H93bSVEa-kSqwpifD4NfyQ_12_2">6,677</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_DpHhSXHT30WFldVT8ub07g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_Yusx9db5nEiTsDcw4kyH4Q_12_4">5,996</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_AQeERyWeAUmcM8TN2dBtng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_miB5-hOoAEWoidTFJampxA_13_2">8,538</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_nhQYimyVwEawwo6fkcZKtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_mHYZbNy5tEuQPLCr1oRLCg_13_4">6,535</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_jx1nfJsAGUKC1smEaFRzZA_14_2">369,548</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_JB04c9KpfUWBObc_PZ-I-Q_14_4">315,431</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="Tc_KTszUu7iykCtb1dgZ8wGEQ_15_2">229,609</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="Tc_kxNVM9enRUy0wFNTFsJRmg_15_4">239,992</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the&#xA0;year ended January&#xA0;31, 2022 is primarily due to the acquisitions of QuestaWeb, Portrix and GreenMile, partially offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="6" id="Narr_wSqN1j7O5UmckNUy924o3Q">229.6</ix:nonFraction> million over the following periods: $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" scale="6" id="Narr_r766VH3SZEadBZCAYUIszQ">53.4</ix:nonFraction> million for 2023, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" scale="6" id="Narr__Ohr0gUmCEiS9Sow385zbg">41.2</ix:nonFraction> million for 2024, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" scale="6" id="Narr_kHwyTL4nFEK2hzu_r8uXbw">38.4</ix:nonFraction> million for 2025, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" scale="6" id="Narr_hNX8QObxS0yrvLlGBfeTtg">34.1</ix:nonFraction> million for 2026, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" scale="6" id="Narr_OYsiPcgdWEmZSn_jngseGQ">19.3</ix:nonFraction> million for 2027 and $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" scale="6" id="Narr_RUH576TURUeSlhsLR1Z5FQ">43.2</ix:nonFraction> million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.</p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_ISeB-yoCdUaxPIiWR48wjg_1_2"></a><a id="Tc_nrjhFZ7jUEOPUZwfYSzUqA_1_4"></a><a id="Tc_dYXKoUpPQkqzfIwkzhLroQ_2_2"></a><a id="Tc_BKIOvTsU7U2Q_Lt7vPuNtg_2_4"></a><a id="Tc_1UM0ecoY-U-MDZM1ySzdSA_3_0"></a><a id="Tc_htMT3xizWUSyzBWdLQy31Q_4_0"></a><a id="Tc_gW-IbsxBPUGEDgSvjEQdcA_4_2"></a><a id="Tc_UX5JT2Q1YkKaao0ECzYxRA_5_0"></a><a id="Tc_1suyfDa5F069IJuVEEGJaQ_5_2"></a><a id="Tc_oC7OmPqIekSlm2aqxuFYWQ_6_0"></a><a id="Tc_D5wcg6zLCk2uOPSiON9riQ_6_2"></a><a id="Tc_P5bDIynHwEucq_QwHP00wA_7_0"></a><a id="Tc_9ms9LA_2LUS6b0BQ-oozQA_7_4"></a><a id="Tc_sO3Tf5AcLkWTJvjUx2URDg_8_0"></a><a id="Tc_O9gs4idU6UqmO7RCRwRHPg_8_4"></a><a id="Tc_C3wzl5EiCE2f2Fi7biEZLA_9_0"></a><a id="Tc_9pv9-lvw80CN6TNduHPhgA_9_4"></a><a id="Tc_a-4okx0rOkSReouFkuzMuw_10_0"></a><a id="Tc_bTVG1T9Tu0eGRQmp722ThQ_11_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:GoodwillDisclosureTextBlock" id="Tb_vEjZsl3Bt0unyW4YZJvACA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;10&#xA0;&#x2013; Goodwill</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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, 2020:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="srt:ScheduleOfCondensedCashFlowStatementTableTextBlock" id="Tb_9d7u_GJchEyjlLpfeovQAA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at beginning of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_s2KJEv87LUa_wtusDg_ldw_3_2">565,177</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_Xsw6PG3KfUukWWNO7y3SOw_3_4">523,690</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of Peoplevox</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_LYQHgH4LvUGSP_rttoOSWA_4_4">15,182</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of Kontainers</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_Yz-ypiDHk0a8p2sDo35eCg_5_4">3,461</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of ShipTrack</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_5hToYMV5P0CkmR4NffKwnQ_6_4">10,327</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of QuestaWeb</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_Gr6KggtXIEG2dwjUkXbEcQ_7_2">21,691</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of Portrix</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_Mdx5ax_8gka2s6QRinvdlw_8_2">15,032</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of GreenMile</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_BS9IEPW_5kaBdC_YLq_QBg_9_2">12,968</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Adjustments on account of foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments" sign="-" scale="3" id="Tc_BI3qOQDdDU-eT5QT8kdOpQ_10_2">6,107</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments" scale="3" id="Tc_D6qBtBg540e_fHA0gGfiiQ_10_4">12,517</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_FrCWy-mqyUqkduNQtU_dsA_11_2">608,761</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_jkjYRGafLE2qWAKKZNv90g_11_4">565,177</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_vORcb1JHgkqu4_3uyIaUcg_1_2"></a><a id="Tc_rn6JBEl-_0yO9IOjtuX9nA_1_4"></a><a id="Tc_PcaQfMz510qSPdibk1vjUQ_2_2"></a><a id="Tc_scDV05EZzU-hoQl2MnJsig_2_4"></a><a id="Tc_KOauQNfgfUOX7hhyy6N6gQ_3_0"></a><a id="Tc_r4aapPkgpUmf8qe9ZZVvRQ_4_0"></a><a id="Tc_jP41_h-Y0U-Bsh5FK21_Mw_5_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" id="Tb_ATkrL6c2-E6n-XgdtTpyZQ" continuedAt="Tb_ATkrL6c2-E6n-XgdtTpyZQ_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;11&#xA0;- Accrued Liabilities</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="Tb_P9zriYpMm0ao2w_Aeun7ow" continuedAt="Tb_P9zriYpMm0ao2w_Aeun7ow_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accrued compensation and benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" scale="3" id="Tc_tD7KvCPa30Wjp1Vp4XIiCQ_3_2">32,169</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" scale="3" id="Tc_CZTOdLoYV0GgpR-jElEgpA_3_4">24,643</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accrued professional fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedProfessionalFeesCurrent" scale="3" id="Tc_lmAQjRl3Jkyz4zt5L2rkaw_4_2">1,318</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedProfessionalFeesCurrent" scale="3" id="Tc_KzOeRftM0keUNH3_YLu_6Q_4_4">1,188</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Other accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAccruedLiabilitiesCurrent" scale="3" id="Tc_dM6PGyVG1E23xHnu7evEhQ_5_2">22,955</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAccruedLiabilitiesCurrent" scale="3" id="Tc_fvuBFdR9n06xE3Up4DshZg_5_4">13,048</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_rcsNwZ7I7ECeof-yoZfEXw_6_2">56,442</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_G1RcLd2mmkyG0XoT2IlhFQ_6_4">38,879</ix:nonFraction></p></td></tr></table></ix:nonNumeric></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">31</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_ATkrL6c2-E6n-XgdtTpyZQ_cont1"><ix:continuation id="Tb_P9zriYpMm0ao2w_Aeun7ow_cont1"></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Other accrued liabilities include accrued expenses related to third party resellers and royalties, suppliers, accrued restructuring charges and accrued contingent acquisition purchase consideration.</p></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:DebtDisclosureTextBlock" id="Tb_XNRrh1lvXk2kGQ8dC4gArQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;12&#xA0;&#x2013; Long-Term Debt</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We have a senior secured revolving credit facility in place with a syndicate of lenders. The facility is a $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_CHgSwsp1YU-fuIhZ6XL__w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_wc3Ih6mePE63vgWmEmQovQ">350.0</ix:nonFraction> 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 $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_ywumInG3jUiHKI12dCDfSw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr__Vz5bDa1ekWtw-3G-CTprQ">500.0</ix:nonFraction> million. The credit facility has a <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_u_RInjQ7nUm_b14xd328ug" format="ixt-sec:durwordsen" name="us-gaap:DebtInstrumentTerm" id="Narr_3pdN4t_-C0u5Q050QPMvrQ">five-year</ix:nonNumeric> maturity with no fixed repayment dates prior to the end of the <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_u_RInjQ7nUm_b14xd328ug" format="ixt-sec:durwordsen" name="us-gaap:DebtInstrumentTerm" id="Narr_8yT-9KPh8UuBJ3CUkFz84Q">five-year</ix:nonNumeric> 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 <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_LbgTJfBAc0-puJJw6dnpjQ" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-4" id="Narr_xvZcY7ORrke2C6IZj7JVew">0</ix:nonFraction> to <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_vkNJbO3L_0iTH20RJ2bw7g" decimals="3" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-4" id="Narr_Sz1MNNC-RUCrda9b-DRpGQ">250</ix:nonFraction> 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 <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_7WV2WG7hY02Hue03KNCehQ" decimals="3" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-4" id="Narr_tVpw5qnVBEOBT9xep998OA">20</ix:nonFraction> to <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_8UoMpN6ffkGHrkF9TWjHWA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-4" id="Narr_do5IlKPljEOU9GId5h2Lfw">40</ix:nonFraction> basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_9VPfdHEG60GB6FjmgdjwIQ" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:LineOfCredit" scale="6" id="Narr_6Q30gSqvvE-cFH1fuJSt0g">No</ix:nonFraction> amounts were drawn on the credit facility as of January&#xA0;31, 2022 and the balance of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_9VPfdHEG60GB6FjmgdjwIQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" scale="6" id="Narr_evMakYVcJEKdhDn5MyaMXQ">350.0</ix:nonFraction> million is available for use. We were in compliance with the covenants of the credit facility as of January&#xA0;31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">As at January&#xA0;31, 2022, we had outstanding letters of credit of approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LettersOfCreditOutstandingAmount" scale="6" id="Narr_igp_2CVzE0CBAsB5gAXzjQ">0.2</ix:nonFraction> million ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LettersOfCreditOutstandingAmount" scale="6" id="Narr_BAC4ilh-RUmwfKpQsFyzhg">0.2</ix:nonFraction> million as at January&#xA0;31, 2021), which were not related to our credit facility.</p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_sVB1TRFdr0-jf1c826YWCw_1_0"></a><a id="Tc_MOwASqfoJ0a6lJ2Hc1wjAQ_1_2"></a><a id="Tc_nxgYteIKNkmGfcGvYQmCLw_1_4"></a><a id="Tc_xKrFm2IDN06SsQHnBCe0qg_1_6"></a><a id="Tc_N1V0jAgx4kqp0fUuqcdiRw_2_2"></a><a id="Tc_NP0dhVnb_EC80agggoLitw_2_4"></a><a id="Tc_vH8Bkvloq0iJiutNsbYmBQ_2_6"></a><a id="Tc_dwdf1D1_l0SOwnZMBVLTvA_3_0"></a><a id="Tc_SaHRJgPk20e1BkZqnjyi3Q_4_0"></a><a id="Tc_vZ86IXd2pk6co2_q2Ouh3Q_5_0"></a><a id="Tc_R_jMU9TRAkaHKEzlW8xYPA_1_0"></a><a id="Tc_f-VBD9SSGkWN6_yiOp5LkQ_1_2"></a><a id="Tc_YVRwgYpuCUq0dAj4QOS8yg_1_4"></a><a id="Tc_Gc2F9t7KOEeGlHMOt7KP-w_1_6"></a><a id="Tc_gF5LlHfTBkWIDe01nPuCpw_2_2"></a><a id="Tc_o-npjTOpU06sdpQdxXq1yw_2_4"></a><a id="Tc_jSqY8AqdJEClhwBCy_u5Lw_2_6"></a><a id="Tc_nKJVFLnf3Em6GycwxSb-2w_3_0"></a><a id="Tc_54DQx14_40m-ZW7qDvIvLw_4_0"></a><a id="Tc_MAxJSDpPVki7xMdHwvNg9g_1_2"></a><a id="Tc_4uvRXliih0GUUncw-iRBiA_1_4"></a><a id="Tc_cl36MleKHUC80tmptS7I0g_2_2"></a><a id="Tc_whoYVIjL-USNkSjGy5ywVA_2_4"></a><a id="Tc_csBPmo_SDUyLSmSboySyAA_3_0"></a><a id="Tc_jgtC2xlGQkuB-yNDsKa9sA_4_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:LesseeOperatingLeasesTextBlock" id="Tb_54DEbvettEuojrglv1bQ0w" continuedAt="Tb_54DEbvettEuojrglv1bQ0w_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;13&#xA0;&#x2013; Leases</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to <ix:nonNumeric contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" format="ixt-sec:durwordsen" name="us-gaap:LesseeOperatingLeaseRemainingLeaseTerm" id="Narr_r0SqM722K0i1fTlKOy-Xbg">7&#xA0;years</ix:nonNumeric>, some of which include options to extend the leases for up to <ix:nonNumeric contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" format="ixt-sec:durwordsen" name="us-gaap:LesseeOperatingLeaseRenewalTerm" id="Narr_iytl4b5k4k-UJ5ym-ROpEg">5&#xA0;years</ix:nonNumeric>.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The components of operating lease expense were as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:LeaseCostTableTextBlock" id="Group_ePE4zUgLR0qNwiFxMTt-Jw" continuedAt="Group_ePE4zUgLR0qNwiFxMTt-Jw_2" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Operating lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="3" id="Tc_tixyee4ruUipucqP-B5fZA_3_2">4,466</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="3" id="Tc_H0_tAd0nkUC9LdC3DKsvmA_3_4">4,590</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="3" id="Tc_O6TSvGA3aUCGHsHIm9J4tg_3_6">4,902</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Short-term lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShortTermLeaseCost" scale="3" id="Tc_MavhucGjd0eZRLsZhL19gw_4_2">432</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShortTermLeaseCost" scale="3" id="Tc_mljhtdf1O0mNmf6DXDYwoA_4_4">502</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShortTermLeaseCost" scale="3" id="Tc_9TbIfo51g0uRtUEOO8VO2A_4_6">866</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Total operating lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="3" id="Tc_GVAKRGj0vUSllTulQ-7iQw_5_2">4,898</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="3" id="Tc_qmWkBCmGWUC-V-CkQoFZdA_5_4">5,092</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="3" id="Tc_2euGWaM-2E-IANwVVn801g_5_6">5,768</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Supplemental cash flow information related to operating leases was as follows:</p><ix:continuation id="Group_ePE4zUgLR0qNwiFxMTt-Jw_2" continuedAt="Group_ePE4zUgLR0qNwiFxMTt-Jw_3"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Operating cash outflows from operating leases included in measurement of lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_zljGIbniLUaYrOeKlGFNDA_3_2">4,857</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_zj7EZ99DYECT_NbBPXPPvQ_3_4">4,831</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_IYE_9FqPKECirkke4s0RkQ_3_6">4,150</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">New ROU assets obtained in exchange for lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_RJoRk2Wzeke1JLbFszxXYg_4_2">2,548</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_9gqCRqjKm0ScExKnuw_V4A_4_4">2,337</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_Kp99Eq_vekWWA7bFCak4EA_4_6">6,439</ix:nonFraction></p></td></tr></table></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Supplemental information related to operating leases was as follows:</p><ix:continuation id="Group_ePE4zUgLR0qNwiFxMTt-Jw_3"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average remaining lease term (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Tc_LOnm_S5wOE64IMq6HAMQNg_3_2"><b style="font-weight:bold;"> 3.3</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Tc_Cj5SeAKvgkGkryMkVsUuqw_3_4"><b style="font-weight:bold;"> 3.8</b></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average discount rate (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="Tc_tS7Tjj7V9kGrZ1rO01Nu8g_4_2">2.1</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="Tc_o5g_fdHmY0apFtKbomNM-A_4_4">2.5</ix:nonFraction></b></p></td></tr></table></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">32</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_nHsV78T0q0SRC-qFh3buhw_1_0"></a><a id="Tc_OKyOboMTnEOVvWD2aHE3Rg_1_2"></a><a id="Tc_DoWlE7E-5UGfCI1ebtfCPA_2_2"></a><a id="Tc_em3g1liecECbaw3eRHODnQ_3_0"></a><a id="Tc_lN62OMDl7UiP73NsLZRXuA_4_0"></a><a id="Tc_acoFvu5FJ0iD-bYLDB8p9Q_5_0"></a><a id="Tc_QHsurYT5Jk6Ns_KWkY9cvw_6_0"></a><a id="Tc_jcj01xKbOkSVSnQF2h42bw_7_0"></a><a id="Tc_J82vFPogZUWzHnd93mmPaw_8_0"></a><a id="Tc_EhFbayINnEKJvmupTt2X8A_9_0"></a><a id="Tc_Icqe98Z_pUq-o8iq_vwuFw_10_0"></a><a id="Tc_Txe4EnyjYE6B_iP0iPa-Jg_11_0"></a><a id="Tc_DSjHoH2OoUKsB3YJ25n4Jg_12_0"></a><a id="Tc_p1zi6CAAVka8a3IHqKW7rw_13_0"></a><ix:continuation id="Tb_54DEbvettEuojrglv1bQ0w_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Maturities of operating lease liabilities were as follows as of January&#xA0;31, 2022:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="Tb_wCKYpUaj7EWxJ1BwzpnMSQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:83.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Years Ended January 31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Operating</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="margin-left:0pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Leases</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" scale="3" id="Tc_HqFQqB3aXUGWW9U4Z5ENjw_3_2">4,349</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" scale="3" id="Tc_GlqywlBEyUy9N-NqOvZFdQ_4_2">3,526</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" scale="3" id="Tc_2Wps9_5L8ka6-x6DV-HO-A_5_2">2,429</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" scale="3" id="Tc_4AN_8u0kSkW4KUN7UY76mg_6_2">1,131</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" scale="3" id="Tc_da_FT9H5e0iOJtdbdI1PKw_7_2">322</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2028 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" scale="3" id="Tc_oOtgO9ioJESt65LpXg0GLw_8_2">186</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" scale="3" id="Tc_C131-8pUUUiEka4kF-H_mQ_9_2">11,943</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Less: imputed interest</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" scale="3" id="Tc_JymQ0lCDqUiaWkjr1S613A_10_2">532</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="3" id="Tc_OfOTv6ZhlkmDIaMRE5jBqg_11_2">11,411</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_dfTDDjhsM0mLDmNPQNq8VA_12_2">4,029</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Long-term</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_HgHipK3bIEKp1rk56FlbIQ_13_2">7,382</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" id="Tb_7UUuaRQXaEab5EKrbEuKeg" continuedAt="Tb_7UUuaRQXaEab5EKrbEuKeg_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;14&#xA0;- Commitments, Contingencies and Guarantees</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Commitments</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As described in Note&#xA0;2 to these consolidated financial statements, 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 <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-5" format="ixt-sec:numwordsen" name="dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" scale="6" id="Narr_0S7DjhRG0U-frFRjEx0LVg">nil</ix:nonFraction> and $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" scale="6" id="Narr_JWRXMoVWLUKAlKYUp2QcWA">1.0</ix:nonFraction> million, respectively, at January&#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 January&#xA0;31, 2022, we had equity derivatives for <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="0" format="ixt:numdotdecimal" name="dsgx:DerivativeInstrumentSharesOfCommonStockHeld" scale="0" id="Narr_Lv9TB8oGEUy3gxqhbiqmKQ">252,011</ix:nonFraction> Descartes common shares and a DSU liability for <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="0" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitLiabilityNumberOfCommonShares" scale="0" id="Narr_4mFPiV8htUut69R1k04L2w">252,011</ix:nonFraction> Descartes common shares, resulting in no net exposure resulting from changes to our share price.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Contingencies</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Product Warranties</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Business combination agreements</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In respect of our acquisitions of Kontainers, ShipTrack and GreenMile, up to $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_COREKontainersAndShipTrackMember_Na_m748yMkC_8ItOGImQWQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_Pp4fBF4shUeNVxpsgtfDlA">35.6</ix:nonFraction> million in cash may become payable if certain revenue performance targets are met in the <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_COREKontainersAndShipTrackMember_iGVsbJ4rcUGpAAEC07MnkQ" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_-BRSXKHr-U62JK67gbE8IQ">two&#xA0;years</ix:nonNumeric> following the acquisition. A balance of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_COREKontainersAndShipTrackMember_Na_m748yMkC_8ItOGImQWQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_dSaXLlK1skOykRKuTBneDQ">13.0</ix:nonFraction> million is accrued related to the fair value of this contingent consideration as at January&#xA0;31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Guarantees</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Intellectual property indemnification obligations</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 </p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">33</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_7UUuaRQXaEab5EKrbEuKeg_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Other indemnification agreements</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 consolidated financial statements for the guarantees or indemnities described above.</p></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="_e5c46bd3_20b9_47dd_ad20_e47d0c49384e"></a><a id="Tc_GwGWZOBl90yF-W9KN1RvVA_1_2"></a><a id="Tc_F565rNyZ5kOdW6ty0EMdWA_1_4"></a><a id="Tc_-ntX7HOwNkCGLZNcRd-o1g_1_6"></a><a id="Tc_IY6CDcaWGUeuGsgUuy4bdA_2_0"></a><a id="Tc_Knh-eX-HH0a4fl61MfNMlg_2_2"></a><a id="Tc_HehAuAW7d0S3qvoMfnTGWA_2_4"></a><a id="Tc_EKjxuLPfj0aGEQGVTNth7Q_2_6"></a><a id="Tc_HY1fOeOaqEKrpOzvwQ5RLg_3_0"></a><a id="Tc_e47TJb9b1ka6xa7pfYmQ-g_4_0"></a><a id="Tc_JXdmH9P4aUyW8tk2C1s-qA_5_0"></a><a id="Tc_ZLfzyg3Fm0uL-ry-Te0dLg_6_0"></a><a id="Tc_I0q9bwW5SUGPOqTZZWcUDQ_6_2"></a><a id="Tc_LGPUI-NFHEKZkbP03najbA_6_4"></a><a id="Tc_hLfBAmWfdUa_EomgpoD9-g_7_0"></a><a id="Tc_ZNIkZmAql0-FvHYX9-zG4g_7_2"></a><a id="Tc_EFkubRbgXUe9a_NxxbDBXQ_7_4"></a><a id="Tc_S0A9QELLaU2sKpiM8Qho8Q_8_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dsgx:ShareCapitalTextBlock" id="Tb_NvLfYUuL60-Ey54LyM-8_w" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;15&#xA0;&#x2013; Share Capital</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 <ix:nonNumeric contextRef="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_HoZcmJS5UEGoApRP_erQ2A" format="ixt-sec:durmonth" name="dsgx:ShelfProspectusPeriod" id="Narr_uzBI8tPs10anysq6oBOAzw">25</ix:nonNumeric>-month period that the 2020 Base Shelf Prospectus, including any amendments thereto, remains valid is limited to an aggregate of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_-1BLRqHEr0uswedXBzEx3A" decimals="-9" format="ixt:numdotdecimal" name="dsgx:ShelfProspectusMaximumAmount" scale="9" id="Narr_S2-OynnmQEOfpJoPyNFkWA">1</ix:nonFraction> billion. <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_HoZcmJS5UEGoApRP_erQ2A" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" scale="0" id="Narr_J2vk2Hue0EKoNoHO-e5fFQ">No</ix:nonFraction> securities have yet been sold pursuant to the 2020 Base Shelf Prospectus.</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" id="Tb_y6q5-9CaRUanDE8esXBE1Q" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The following table sets forth the common shares outstanding (number of shares in thousands):</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">(thousands of shares)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_Iz3BnJLWW0mUjqzMzVcFLA_3_2">84,494</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_H4Z-FEHzgEmLP3R-_fZnHA_3_4">84,156</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2019_uG_65RiDbkmgzyTBRRPLRA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_RcZi_A_B8kqaAIXr3p5SVA_3_6">76,865</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Shares issued:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Stock options and share units exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" scale="3" id="Tc_pspXwncIPkaiAvEZEtPedA_5_2">262</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" scale="3" id="Tc__1z8ZqHqdE6SjtrcAatZRA_5_4">338</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" scale="3" id="Tc_rS0DYV7AAkGK7JsIjJqgyw_5_6">95</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Issuance of common shares</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" scale="3" id="Tc_YOGwJ8p2y0S7-WmAGsncoQ_6_6">6,900</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Acquisitions (Note 3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" scale="3" id="Tc_3e7Ql40pi0uHaHCxPR-GGA_7_6">296</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_9gFI29CCGku4stjnWMWwug_8_2">84,756</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc__QIkHnZ4_kqgKbJN2TjwKQ_8_4">84,494</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="3" id="Tc_DCdU2bNNs02PYZS_FIHy9g_8_6">84,156</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Cash flows provided from stock options and share units exercised during 2022, 2021 and 2020 were approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="6" id="Narr_nZvIl5L3bUq4QLMYuZX-eA">2.7</ix:nonFraction> million, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="6" id="Narr_nQNUkvUmRUm9KPaIB5xNvA">6.2</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="6" id="Narr_tTJhbBIDcUWlgLFPBJYHlg">1.5</ix:nonFraction> million, respectively.</p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">34</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_JRRJO8a580ycEW2gKkxm-A_1_0"></a><a id="Tc_fffKLWGa6kqg2Ed-fvfz7A_1_2"></a><a id="Tc_HdyMIEvY7EO46u-c38P4Uw_1_4"></a><a id="Tc_1GRrZPSeb0SP0-jj-07fvw_1_6"></a><a id="Tc_TY1smkiRRkun7c9DCREa6Q_2_2"></a><a id="Tc_TjvDXCXMB0iVTFdW0LmpKw_2_4"></a><a id="Tc_k50bw57Ei0SxfShmFNGC3A_2_6"></a><a id="Tc_-SLueGRtxEiyGKON021O2w_4_0"></a><a id="Tc_-IOzjzJ3rUqG4jUT0K2WcQ_5_0"></a><a id="Tc_ZESJMHVgJ0yZ1F5zpvcdmA_6_0"></a><a id="Tc_R0t-eSDgz0WHTbmG0y8Uag_7_0"></a><a id="Tc_ZJctfXT60UGvycSP4e0TRA_8_0"></a><a id="Tc_OSrGw1Uh6UKu7eLzH5VOKA_9_0"></a><a id="Tc_JxVGsIA_ZkGxgLa3VGDtnQ_10_0"></a><a id="Tc_U7l8NalPO0yunvzxNvWp8A_11_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:EarningsPerShareTextBlock" id="Tb_x-5pCzsx9E6wBJN02PCSVg" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;16&#xA0;&#x2013; Earnings Per Share</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table sets forth the computation of basic and diluted earnings per share (&#x201C;EPS&#x201D;) (number of shares in thousands):</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" id="Tb_JbJSs9sbGka2r9A0Yiw9Fw" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net income for purposes of calculating basic and diluted earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_7rc78JxtXU682gheBxJOvQ_4_2">86,282</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_LCCWU-1p9kCnjPkMrne9Tg_4_4">52,100</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_h5w2ttQKYUew5z9w-p8ONg_4_6">36,997</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_sMri2WW9P0-cgKl95rbmfg_5_2">84,591</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_BHHIXq2d5kma3I86NqF5iA_5_4">84,360</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_sFx6Sc0S5EGzkhHS5-DDfw_5_6">81,659</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Dilutive effect of employee stock options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_Rx-wCnJKykygtt1B_UXkwA_6_2">482</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_z9-dPHHAL0yXby9JePBTow_6_4">358</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_RXmlpv6fakyO-2LLpgexsw_6_6">318</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Dilutive effect of restricted and performance share units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_Fx0NI0WDPUCqX47-P0ZbsQ_7_2">1,127</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_CJG2wdGE-UWUMxrjAtlXlw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_nDCtKGdu2Uil2O4gL2GmsQ_7_4">1,038</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QNRGEZqKbk2H-xJ1qEeenA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_tYUijZPtE0SMG_PSWSB3ew_7_6">890</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average common and common equivalent shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_AJJ0na0omEaFMy0D50L6qw_8_2">86,200</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_7ySNuzBKaUGiXdemRDzF3A_8_4">85,756</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_bZ5JJnTZFkOMa0X6hH48hg_8_6">82,867</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_d77utRe37kuBY5csbzAjeA_10_2">1.02</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_fIqe8qEyfE-9hogrst1b1Q_10_4">0.62</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_H_56CEGpoECJliDQkeQ6jQ_10_6">0.45</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_hB6pIMV5b06OZSdSDouOgw_11_2">1.00</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_UIW3vvApGE-x8DjkcDhAcw_11_4">0.61</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_UAOYWU8MYUu89RUvvXxk4w_11_6">0.45</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">For the&#xA0;years ended January&#xA0;31, 2022, 2021 and 2020, the application of the treasury stock method excluded <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_r5pSsa_cYkCG0A19zqkGbw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_Rt8UvVEYZ0mPwICFxxkDKQ">267,236</ix:nonFraction>, <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_0qfldzUGnUa8D6oNioLzVQ" decimals="0" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_HWrlO8tZXU-L5w9MHWMaZw">1,750</ix:nonFraction> and <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_cWPjPg4LDkWEaFxKq7xJYA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_X3cpqEZdMkyY_EbHdXcomQ">350,464</ix:nonFraction> 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">For the&#xA0;years ended January&#xA0;31, 2022, 2021 and 2020, <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_N5hco1tb6U67Swm5ryMSmg" decimals="0" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_tR4N8MKg40aQ7JUAsvGEzg">1,000</ix:nonFraction>, <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_iiKzX0DmCE6auk_0Kl21Pw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_47yRs7QA3kqtahDCo0kHCg">71,161</ix:nonFraction> and <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_Nb9EtL9nKkukH1rnMIiTrw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_5_1X0FAhrEW5OkzfZpMR7A">5,909</ix:nonFraction> stock 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Additionally, for the&#xA0;years ended January&#xA0;31, 2022, 2021 and 2020, the application of the treasury stock method excluded PSUs and RSUs of <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_z7zilvJfkEWdP1QukbdUoQ" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_LF84V1lVHUmQ5eUK_i2EMg">nil</ix:nonFraction>, <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_wEcqw4uO2keH-5OKP18XBQ" decimals="0" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_kz3KeFADh0iyYkr3qBRaSA">43,002</ix:nonFraction> and <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_0kw2A8eK6EG7Hy2gjU7AnA" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_vOrOfzh4KEGg6yxwUrU2Qg">nil</ix:nonFraction>, 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.</p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_6bdAB2OVikWXfVXwn35bbA_1_0"></a><a id="Tc_IFt8KvB45UWKYRrlGr5X7Q_1_2"></a><a id="Tc_e6kb_8XvyEWYr6YHOAeGwQ_1_4"></a><a id="Tc_mUivS8s2dUWfHkWtmh_bzQ_1_6"></a><a id="Tc_PjbF4hbRn0qgRE5LN3GIDg_2_2"></a><a id="Tc_bN349a01F0m9Sn31Wy16ww_2_4"></a><a id="Tc_jqY0odyecEKlrF2DQBJ-WA_2_6"></a><a id="Tc_QdlwYIxIS0GLJnF14e8xzw_3_0"></a><a id="Tc_u8u7kc00XUeCHp11goV8eA_4_0"></a><a id="Tc_0BqX_SJ5oEKo-XfUANh-Jw_5_0"></a><a id="Tc_QFhi0gppzUSLvjbjEZ83zw_6_0"></a><a id="Tc_gqkbu7V4uUuVO49GPwVl-w_7_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="Tb_p8abu6eDbkynmCkdLPZdcw" continuedAt="Tb_p8abu6eDbkynmCkdLPZdcw_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;17&#xA0;&#x2013; Stock-Based Compensation Plans</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Total estimated stock-based compensation expense recognized in our consolidated statement of operations was as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" id="Tb_JV6peuVJDkqOtwgxcGi7wQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_8l1N7K4Xc02vvyAvHjaasQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_fpARSVMM7EG-nGAeAr0cxg_3_2">732</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_jsHHy_PqpkiirASYpxSruQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_Fjhte5AhjkCMp_0KEaGtnw_3_4">319</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_ru_9FcT6ikaFMxDHrrMd5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_6NKGYnT_9EiwDnjFlwziZg_3_6">220</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Sales and marketing</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_HykPW4NlGEivd_SePNDWQA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_A8dZToeDfUOL8vfZol95ig_4_2">3,060</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_3bFzRfjWLkqA2oYYNELPFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_h06Wv34RlkC6790bWrahzQ_4_4">896</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_PDYPg1dAqE2gEl9iicLP8Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_LNO1MfEuv0G_d9sbzmfcCA_4_6">706</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_p-sYBbEvvUCRaew36CFgkA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_v_GOK3TWZEqtDF1nyxphHQ_5_2">1,419</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_3MfANjnYcECPQTJiRahhhg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_ih3RZNPhWk-rV1AXS80Fhw_5_4">404</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_QcE0I4cJ5k2iVg_82e4xEg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_8TZH_Y2vuEqpj_YhDh6SiA_5_6">281</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">General and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_fDOL7lqI6U-y6cUkIlDJ-g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_3k0KRJJIb0ufP57v8IEz5Q_6_2">5,806</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_GmlB_N6orEO4bj1gBhlFpQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_-vYXmWILt0qClBWPWmoe3g_6_4">4,694</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_J1LSEqJWtUeeWzLBwEGttA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_Vil_mnWS60O1CrkpHvO72A_6_6">3,702</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Effect on net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_5_52FoFFaEWe51ccQP074A_7_2">11,017</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_Nt_plcvNt02QukCUBPYgnA_7_4">6,313</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_0Mtl8jVecEaWrYKubrHxJQ_7_6">4,909</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" scale="6" id="Narr_TCrvbIirbkuQZrTdZInhzA">0.7</ix:nonFraction> million ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" scale="6" id="Narr_THqY45QzD0SJdSE04DNrQA">0.7</ix:nonFraction> million at January&#xA0;31, 2021) recognized in the United States. The tax benefit realized in connection with stock options exercised during 2022, 2021 and 2020 was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" scale="6" id="Narr_eo-7tqtGMEWCEYVNsqlv1Q">0.1</ix:nonFraction> million, nominal and $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" scale="6" id="Narr_elwWAdd6PEqesekEzRU7ug">0.1</ix:nonFraction> million, respectively.</p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">35</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_NqdwVq4PMkupR3HYnsIq5A_1_0"></a><a id="Tc_8DfTljaFIk6DBO_JpD29LA_1_2"></a><a id="Tc_g9lzWr650E-bd3vfz9IEUA_1_4"></a><a id="Tc_jFZg7T-h-Uy1HwfKnD7ccg_1_6"></a><a id="Tc_F4vG0MXaCUu0Q2SFg8HMvw_2_2"></a><a id="Tc_jHeopsPRNkiniAte1qk9Xg_2_4"></a><a id="Tc_g-Tlquh4v0m8TaTUbEArag_2_6"></a><a id="Tc_vHsyYelJf0StW9D2mdzWpg_3_0"></a><a id="Tc_WXwKyl_DTkOb0l-Nx0-8dA_3_2"></a><a id="Tc_p7YrynbIpEOXO_psdDHK5w_3_4"></a><a id="Tc_4DoMvYbJRUiiJNjQ8ngMIA_3_6"></a><a id="Tc_pgzBtlRQ90ubGfTUnJYPTA_4_0"></a><a id="Tc_R-oulQgUDEWtB8grjJbiJQ_5_0"></a><a id="Tc_-fv4ck2CpEy5kcucH-4TvA_6_0"></a><a id="Tc_76DHXb9n0E6qvNB60gfq4Q_1_7"></a><a id="Tc_Jj6tOQhCLUG4aUHDO9ERPA_1_9"></a><a id="Tc_58ZQ1iziVUm5MSnPHyZBmQ_2_2"></a><a id="Tc_TsaSc57-9U6tIQaQa9EtSw_2_4"></a><a id="Tc_Rh9J2fEl5U-UqgiUSRdG5w_2_7"></a><a id="Tc_8lWu_U_b0E2QXZ3BDfo1ZQ_2_9"></a><a id="Tc_JnnHBNMmgkKiEWXdG7K5NQ_3_2"></a><a id="Tc_kemRyJ3_ykSxzROBxrgikw_3_4"></a><a id="Tc_WFAc-2AQu0--iPiYkRrAcQ_3_7"></a><a id="Tc_y2hteKSmek69L8Dplmy6FQ_3_9"></a><a id="Tc_AkraBYvuA02JEBCtUCYIYg_4_2"></a><a id="Tc_NPbBvYn-4kOd14tAH_ObYA_4_4"></a><a id="Tc_lmZ8DfwBuEKQzfXobDts5A_4_7"></a><a id="Tc_IpJPsVXjJEG4-fKjcCHXSQ_4_9"></a><a id="Tc_akHU0f7xlUudNzScX-R83g_5_2"></a><a id="Tc_Df7w6quls06F31_cjTwgcw_5_4"></a><a id="Tc_z2QHZMXue0--bTSTdgK5Xw_5_7"></a><a id="Tc_V94Y7TIzpki_nqZOh-eBCA_5_9"></a><a id="Tc_l7qSJz1akEqzU9Ust4_MZQ_6_0"></a><a id="Tc_-IyUhG_Ei0WXLPTvc7Coyg_6_4"></a><a id="Tc_E2S20jjhqkajeerqVzgqUA_6_9"></a><a id="Tc_rU5pcwFlVEeo6jz11ukuRQ_7_0"></a><a id="Tc_VUfy7KHTF0q1IeWfBfBQTw_7_4"></a><a id="Tc_YweLws-lhEGms-1Yag_dkw_8_0"></a><a id="Tc_LvfortwlBkugScBKQlQsSQ_8_4"></a><a id="Tc_SkxqXpf6EUOIv5JP6Fd8hQ_9_0"></a><a id="Tc_Y_du_cOLRk27YV-uR4yHIA_9_4"></a><a id="Tc_Rsf_gDTT202tBrb7TvfWhw_10_0"></a><a id="Tc_bQo2-y1WQkeq94M0CRcLYg_10_4"></a><a id="Tc_fIxayiL4N0CyJ4AizeyuJA_10_9"></a><a id="Tc_L77FpNvt50qAQJWll7CXew_11_0"></a><a id="Tc_8FTpRknE0E2o4KZqMFjP6Q_11_4"></a><a id="Tc_jJ3Cfn0NOk6xX2IoTYj52Q_12_0"></a><a id="Tc_hgJc0J9JNEWfevBGPCBsSw_12_4"></a><a id="Tc_skcNT_ZlJkiFjX0b1yoXLw_13_0"></a><a id="Tc_cU-ceeb3gkKp0AYg4kFhcA_13_4"></a><a id="Tc_VxUBen8um0SySmWjgiZ0sA_14_0"></a><a id="Tc_CMzGy5NbX02gvEGC1XDVsw_14_4"></a><a id="Tc_ENfRbzIIP0K_vu5YxxmHoQ_14_9"></a><a id="Tc_0o6sQkEvMEiHQVTNUMSUpg_16_0"></a><a id="Tc_2z5kPoGnaUKevDJzNNPkkw_16_4"></a><a id="Tc_0LmxYfFIU0q2SIcddOjMfw_16_9"></a><a id="Tc_ZU3Qo0RVLEmkcJnvtWKNvw_18_0"></a><a id="Tc_V0aG5CjO20GDQ0T6sF0AKA_18_4"></a><a id="Tc_2wauRot8mE-w7Lxz6D0CKg_18_9"></a><ix:continuation id="Tb_p8abu6eDbkynmCkdLPZdcw_cont1" continuedAt="Tb_p8abu6eDbkynmCkdLPZdcw_cont2"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Stock Options</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As of January&#xA0;31, 2022, we had <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_tuTAz0XA_Ei-QJeWb1ffHQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="0" id="Narr_w10epW3dEEC0Hi4Q1puSFQ">1,319,279</ix:nonFraction> stock options granted and outstanding under our shareholder-approved stock option plan and <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_WoGVhn8RbEqNIS2XfMymGw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" scale="0" id="Narr_LCUiWJB_bUC2iVrh2OjqBg">3,041,719</ix:nonFraction> remained available for grant.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As of January&#xA0;31, 2022, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_8o6KsHXFCUGApF_yinehww" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_aEQ_gBZiPkSw2UAC3vdrYQ">6.1</ix:nonFraction> million of total unrecognized compensation costs, net of forfeitures, related to non-vested stock option awards is expected to be recognized over a weighted average period of <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_T35Ce-ftVkCfzd2IVx2x1w" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Narr_oQmQ3t8FIkumii5BhkZsPg">2.6</ix:nonNumeric>&#xA0;years. The total fair value of stock options vested during 2022 was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_T35Ce-ftVkCfzd2IVx2x1w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" scale="6" id="Narr_OoT9hAGZw0qzIquxtKEDOA">3.4</ix:nonFraction> million.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The total number of options granted during the&#xA0;years ended January&#xA0;31, 2022, 2021 and 2020 was <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Narr_4Fk8LziCrUC_X_z3q4JEXA">271,025</ix:nonFraction>, <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Narr_-MRTWj5xi02aK3iaDjDQbQ">381,859</ix:nonFraction> and <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Narr_ojBOznhZf0qrfRNbQpl34A">367,173</ix:nonFraction>, respectively. The weighted average grant-date fair value of options granted during the&#xA0;years ended January&#xA0;31, 2022, 2021 and 2020 was $<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Narr_m9aH5mw1K0eVIVftvJEByA">16.77</ix:nonFraction>, $<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Narr_8XatQu388E-mzgz5hkGZVQ">10.19</ix:nonFraction> and $<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Narr_CXohN6FwvUSZk7qt6Xqv1Q">8.99</ix:nonFraction> per option, respectively.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The weighted-average assumptions were as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="Tb_BZvEESrpv0m9iT2yyre6BA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Expected dividend yield (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Expected volatility (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="Tc_PccA6Ae8B0moyT4TbicZ0w_4_2">27.8</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="Tc_1CQKAGdQekqXxTnJf-JDEA_4_4">26.4</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="Tc_ogAGsGXveU2wRdPboHxtIg_4_6">23.5</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Risk-free rate (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="Tc_9W9JHGO8vE6Nbau9L5AS1g_5_2">0.7</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="Tc_FRAmLa9pFk-ea6vA-lyncA_5_4">0.7</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="Tc_yFRFjdTEnECn7YvO0mmYZw_5_6">1.4</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Expected option life (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Tc_fjujXW5s40mRMBHjChqqIQ_6_2"><b style="font-weight:bold;"> 5</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Tc_P2Gukg-Yx06vAMkK01Zp9g_6_4"> 5</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Tc_XXNvuTdg2kChqN3QObGVlA_6_6"> 5</ix:nonNumeric></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">A summary of option activity under all of our plans is presented as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="Tb_FZ0h-snVKkipJ3-Xc7tFEA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:50.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">(in</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Life (years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="0" id="Tc_I5ERD6qa50eJOlpfkijkxg_6_2">1,127,822</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_rCZdZ8qCmUu60S7_1eTpcg_6_5">26.82</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" id="Tc_vGMyf4V_e0-dtyQPQgQx7Q_6_7"> 4.6</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" scale="6" id="Tc_g2rN14flkk6cIydWeGHOBQ_6_10">20.2</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Tc_mX5IcFuf9k68JFaoixGXbQ_7_2">381,859</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_-ecYgPDk7UiI168bsjwPlA_7_5">41.51</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" id="Tc_4IlP531SVUW1HV4Yq3kDGQ_8_2">338,342</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_A43OfhezVUCylutWW1hI2g_8_5">18.43</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" scale="0" id="Tc_HM1tOWZ4X0-N6swuFlbxbw_9_2">23,619</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_27hHWIS4nUOgXV0qIN1Y7Q_9_5">33.88</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="0" id="Tc_f4m7V8vWWUeaSqG1tbK8bQ_10_2">1,147,720</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_KwP4uhFZNkigog2AaaHB_A_10_5">33.77</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" id="Tc_i5V9UjYraki_m_PaSeH-XQ_10_7"> 4.9</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" scale="6" id="Tc_OVrpn1a6x0aSwttlR1NFZg_10_10">28.1</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Tc_1wIt69h43EaSkL177hMrmg_11_2">271,025</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_LwnjSrzHz0GJPU7r6aBiqA_11_5">65.03</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" id="Tc_-_3FOo1b_k-SEmHfvu6_hw_12_2">90,166</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_1n_AFr4yE0C_sxe3up9pEA_12_5">29.38</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" scale="0" id="Tc_rhlV-hifXUiH5g8HxYV3pw_13_2">9,300</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_4NInMg4y30SCWfFc_3jXpA_13_5">53.94</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="0" id="Tc_S-Z0A_zeiU27ejEG-osngA_14_2">1,319,279</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_F6BYOGYfP0CRv_pdCScKgw_14_5">42.35</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" id="Tc_bpaz68_kcUWSwPeSEDlGlA_14_7"><b style="font-weight:bold;"> 4.4</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" scale="6" id="Tc_Y6TXM383W0e10_hMFSQUmQ_14_10">41.5</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Vested or expected to vest at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" scale="0" id="Tc_M_1X0YuG5UmZkhYEZZzDag_16_2">1,319,279</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_JuyA7rBAyUy3q8JmbjkZ_A_16_5">42.35</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" id="Tc_hpwRX_sr5Ua07tq_rhtIZw_16_7"><b style="font-weight:bold;"> 4.4</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="6" id="Tc_o6d7m_BLek-LsxvCDWo7Qw_16_10">41.5</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">Exercisable at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" scale="0" id="Tc_vVC7ez5TO0WDu1C-Se9Fwg_18_2">856,426</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="Tc_GfUw_YtxzkSfo1WO2hpryw_18_5">36.91</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" id="Tc_pKXaiZZQ_kWlj7559JfEIw_18_7"><b style="font-weight:bold;"> 3.9</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" scale="6" id="Tc_mgjXfxyq5UWd7Ps_3OprBA_18_10">31.6</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The total intrinsic value of options exercised during the&#xA0;years ended January&#xA0;31, 2022, 2021 and 2020 was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_-toHeshRMEivVCrTWZ7W3w">3.7</ix:nonFraction> million, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_YAYkOUsKzkyp4ds0nOw5Qw">10.8</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_8ELqgE36c0GIcXvp3A6Fyw">2.0</ix:nonFraction> million, respectively.</p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">36</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_EGlpaM4rbUu0CJOD4hSGTQ_1_2"></a><a id="Tc_r5uEPU6xjUmROPGc7XmytQ_1_9"></a><a id="Tc_jaW-vw75J0GQsLkSp0gAYQ_2_7"></a><a id="Tc_Te4iaZbDNEugmdFcCKkjTg_3_2"></a><a id="Tc_MTMfAcA550eXBnQ27Bvnpg_3_7"></a><a id="Tc_9wxO9AsuYkOlxs3NrHxMtg_3_9"></a><a id="Tc_gAmRWCjNuE22zQsPBRK7lw_4_2"></a><a id="Tc_X8FtsV4iKkmFsGx2Z2nr0w_4_5"></a><a id="Tc_XiCB3RihXkysdJiKIkEBHg_4_7"></a><a id="Tc_a8xrVEHugk6fFLZBnGr5HA_4_9"></a><a id="Tc_3y6WTjeTMUmsiQkwXIqcxA_4_12"></a><a id="Tc_1iDGyngBfEOAssAjWw5T_Q_5_2"></a><a id="Tc_l4kIWAVdH0irK42reDEZrQ_5_5"></a><a id="Tc_SGoi4XYb6U-tSt6Uhv4zdg_5_7"></a><a id="Tc_JRJAXxOCJUe0dXWfwSWDrg_5_9"></a><a id="Tc_6nxlfPlM4kCmorSFmG465A_5_12"></a><a id="Tc_Ckjyux0xSUuaawEy5c5FNQ_6_0"></a><a id="Tc_uRq3guZO8UW4iXzL6yx84A_6_2"></a><a id="Tc_iao2vOVQtEOc1i4JneE7yw_6_5"></a><a id="Tc_ChHSXbczFkO8SKa4kIhVog_6_7"></a><a id="Tc_VRh_-1iEGUWj73vCXwe40w_6_9"></a><a id="Tc_fQbkB0qIWUeSjwwYoz_gtA_6_12"></a><a id="Tc_8TchbVFCIUWPmEcr9YIfSQ_7_0"></a><a id="Tc_6cQsgt2KYECT7z2ijv2PWw_7_2"></a><a id="Tc_7S6v4H9P-USIt2U2QwVaAA_7_9"></a><a id="Tc_omUMg-ojZkuRDRyBsaCVPQ_8_0"></a><a id="Tc_7yzLFw-D_0Cji4pC9ZGPiA_8_2"></a><a id="Tc_LOh1t9c_9ECAFmsOsI_INg_8_9"></a><a id="Tc_O7IH6x0ixU-nCSx4TEVoaw_9_0"></a><a id="Tc_XTOtfjwEIUC4Hgv0RZW4gQ_9_2"></a><a id="Tc_RzbgbezLWk6NFpKML77HUg_9_9"></a><a id="Tc_tW8Jyj3fNUOSmwavyU9T7Q_10_0"></a><a id="Tc_kTmxeoEsQEWBz8gaRNitUw_10_2"></a><a id="Tc_nq_3yN60oEG_NXmWy2a_9w_10_9"></a><a id="Tc_C2nRjOo0pkquRYBld8REMg_11_2"></a><a id="Tc_-2NknEQTZEeibJyW7lP9BA_11_9"></a><a id="Tc_ta-NQSCWUk-8YhtVaEH_aQ_1_5"></a><a id="Tc_-cyjzVwtdEi9XVQxBlbLWA_2_5"></a><a id="Tc_Onf02O0aQ0u6zmXZlLDKZw_3_2"></a><a id="Tc_eopyiYgbIUq1mjQQbkls1Q_3_5"></a><a id="Tc_O8dX82vf3kuvTz_Ej20TpA_4_2"></a><a id="Tc_0QQNYQhhjUORPlezJUO-Vw_4_5"></a><a id="Tc_k9zKIV86D0ijPKaInKcBjA_5_2"></a><a id="Tc_adlE57Ci6kWis6ulPsp4jA_5_5"></a><a id="Tc_gxOMBjD-i0ilIkzqLjQc-g_6_0"></a><a id="Tc_5dHfh-ArUUWa69u7FhOoyg_6_4"></a><a id="Tc_VGkDQ98seUml7tCvjryMiw_7_0"></a><a id="Tc_cULyVmrEp0SoOgm8kaKnRw_7_4"></a><a id="Tc_C2FIkuSUEUSH2Ox6AlARRg_8_0"></a><a id="Tc_pEgxz4vIdU-cOtd4aNx_Zw_8_4"></a><a id="Tc_C25b-etkFECqsQ0L4Sqrog_9_0"></a><a id="Tc_b0h1OAnZQkOnDtOfWk1M2Q_9_4"></a><a id="Tc_glijVm2vMUeRgDbZNhX1nw_10_0"></a><a id="Tc_f8wEw8zMakukX57qEPyabg_10_4"></a><a id="Tc_1SL_Fyt55EuQvQiipIqh1Q_11_0"></a><a id="Tc_-2DXaYdT4U2FdDJBIdBhnw_11_4"></a><a id="Tc_F7A0Nx5vs0O_J45H-vMkPA_12_0"></a><a id="Tc_gJkxXlp0o0WiHdcDdvK1eQ_12_4"></a><a id="Tc_aW0kDg_u-0eeIrI5eFqfzg_13_0"></a><a id="Tc_BJqV98LovU-6OKbnT7P6fQ_13_4"></a><a id="Tc_eHQqdiOP20iVV4FT2wo3uw_14_0"></a><a id="Tc_vI7KDH0vE0OzF5KfEs_f6g_14_4"></a><ix:continuation id="Tb_p8abu6eDbkynmCkdLPZdcw_cont2" continuedAt="Tb_p8abu6eDbkynmCkdLPZdcw_cont3"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Options outstanding and options exercisable as at January&#xA0;31, 2022 by range of exercise price are as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" id="Tb_XzUwlOeMXU-8O7r9-ntq9A" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:44.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:31.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Options Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:19.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Options Exercisable</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Weighted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Weighted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Average</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Weighted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Average</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Number of</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Remaining</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Average</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Number of</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Exercise</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Contractual</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Exercise</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Stock</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Range of Exercise Prices</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Price</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Life (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Price</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Options</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_oFYYcwzT2kSngLEWBsY2Tg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" scale="0" id="Narr_u093hxf2EUyRbTT5EWdTMw">19.78</ix:nonFraction> &#x2013; $<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_oFYYcwzT2kSngLEWBsY2Tg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" scale="0" id="Narr_mn5IPAuvA0CFT_CZqA26zA">23.86</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_XxmAIop8xU2fPHBgO1IozQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" scale="0" id="Tc_ReeJ3EY6jESkzQkGkpJWLg_7_3">22.55</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_XxmAIop8xU2fPHBgO1IozQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" scale="0" id="Tc_MxZQ31-iZ0Sik_ol5vbNwg_7_5">176,500</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_oFYYcwzT2kSngLEWBsY2Tg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" id="Tc_yf4N01GZQkSQetLo6UNJ7Q_7_7"> 1.9</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_XxmAIop8xU2fPHBgO1IozQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" scale="0" id="Tc_gztRlJHf0k-q7R0j2RwD-Q_7_10">22.55</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_XxmAIop8xU2fPHBgO1IozQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" scale="0" id="Tc_DMlj74wFpUWOnxmtoktSVg_7_12">176,500</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_miym7Y2tQ0CWkuJKTYz8rg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" scale="0" id="Narr_5ujnCV6E3k-Hm8Bby7aGZg">27.39</ix:nonFraction> &#x2013; $<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_miym7Y2tQ0CWkuJKTYz8rg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" scale="0" id="Narr_aV9tf6D8vkKgsNampK4bfw">29.08</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_XCTgfzC54kK5U5TRd9kmYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" scale="0" id="Tc_NVSJ6EYzVU-yGNYDKBnYwg_8_3">29.08</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_XCTgfzC54kK5U5TRd9kmYg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" scale="0" id="Tc_LEi8AJV8FE6jZsss19A6Gg_8_5">191,754</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_miym7Y2tQ0CWkuJKTYz8rg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" id="Tc_1axZnGMVtk-HG_8YpTgqaQ_8_7"> 3.2</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_XCTgfzC54kK5U5TRd9kmYg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" scale="0" id="Tc_ICMOjhYRzEyMjZm4lILWdg_8_10">29.08</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_XCTgfzC54kK5U5TRd9kmYg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" scale="0" id="Tc_zOXVtD5JVkSMe3DkYNORwg_8_12">176,417</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_ayc5YaAvckuqG75CHoUJVg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" scale="0" id="Narr_H87EA4aPsUeGxo5SvzFcGQ">40.22</ix:nonFraction> &#x2013; $<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_ayc5YaAvckuqG75CHoUJVg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" scale="0" id="Narr_tUX1CwgElUClwU77Spncag">52.38</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_XNpUYrc4XEOgkXEq-NIbpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" scale="0" id="Tc_COYsddGRkUaqAAfAyWgXHw_9_3">40.69</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_XNpUYrc4XEOgkXEq-NIbpw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" scale="0" id="Tc_ybeAqsjnQkGMz6cZrPW8Og_9_5">618,325</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_ayc5YaAvckuqG75CHoUJVg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" id="Tc_gvnKA84sPUegV6T8-_Lvnw_9_7"> 4.7</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_XNpUYrc4XEOgkXEq-NIbpw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" scale="0" id="Tc_JVI0kIgZlkiOgURXtpSvAg_9_10">40.60</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_XNpUYrc4XEOgkXEq-NIbpw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" scale="0" id="Tc_Zyy7LcU7qUmNrXRrqW5O5Q_9_12">414,713</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_KecCz_vCi0WIyzWw686IMA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" scale="0" id="Narr_FZvoAT8yUUqsKnA9QIo5Aw">56.63</ix:nonFraction> &#x2013; $<ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_KecCz_vCi0WIyzWw686IMA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" scale="0" id="Narr_gKag7Zo7r0ySfj7zbotMHg">78.55</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_Pk50zSWNUUqLi05xTSwP2g" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" scale="0" id="Tc_3iQg8pzGnE2wpQ4bGQaZzg_10_3">63.59</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_Pk50zSWNUUqLi05xTSwP2g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" scale="0" id="Tc_vFT8e2mBo0Gqj47uS2lsJw_10_5">332,700</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_KecCz_vCi0WIyzWw686IMA" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" id="Tc_QaJMwgokVUGORL5zZ8KGXg_10_7"> 6.1</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_Pk50zSWNUUqLi05xTSwP2g" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" scale="0" id="Tc_tRAmqsGuhE-snMYFLy8uHw_10_10">63.79</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_Pk50zSWNUUqLi05xTSwP2g" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" scale="0" id="Tc_5_qYWh6ZVESUsUGzp_cOJw_10_12">88,796</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" scale="0" id="Tc_fjIjgkKX3EmcfLBOJUPREw_11_3">42.35</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" scale="0" id="Tc_o7KSf7anZUqoH69Wqxn9cw_11_5">1,319,279</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" id="Tc_iDRUluxiXUSsl0HAizLfyg_11_7"><b style="font-weight:bold;"> 4.4</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" scale="0" id="Tc_oc7PZ3gDdECz7yVN4-7waQ_11_10">36.91</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" scale="0" id="Tc_qS_z3ly--UCDksafFzIBDQ_11_12">856,426</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">A summary of the status of our unvested stock options under our shareholder-approved stock option plan as of January&#xA0;31, 2022 is presented as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock" id="Tb_IC_IjjCPCUyQXLuuzPBrsw" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:66.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-&#xA0;</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number&#xA0;of&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#xA0;Grant-Date</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Stock&#xA0;Options&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#xA0;Fair&#xA0;Value&#xA0;per&#xA0;</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2020_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_SPCBDNsT8km6uDuZauvpng" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" scale="0" id="Tc_EKH7rFKjTkaFjrrGx1n6Kg_6_2">409,653</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2020_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_SPCBDNsT8km6uDuZauvpng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_2SwaD9VnaEu7KqKsFJTm5g_6_5">8.03</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Tc_KKTfIfW77UCH_o7xlHEXBA_7_2">381,859</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_pkRo4oHva02wmoiTtjiXFQ_7_5">10.19</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" scale="0" id="Tc_szgMUuzr10KgyW23TWvBiw_8_2">266,238</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_Izu_HP372EyxTctHAIneBw_8_5">8.19</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" scale="0" id="Tc_MQwmfMqmSkym40FcDSauLg_9_2">23,619</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" scale="0" id="Tc_q6LhphykSUKljcv41mSNiQ_9_5">4.87</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_G9RPCEo4IUG05bsTdddmIQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" scale="0" id="Tc_ueAQ7Bp9WE-Bm-QkyWcXUw_10_2">501,655</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_G9RPCEo4IUG05bsTdddmIQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_GpJoYDWJf0yS8GBejUdBiA_10_5">9.52</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Tc_aOqnYlBBOkG0VDZykgdknA_11_2">271,025</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_BSJElZYSj0uzICNkIaknaw_11_5">16.77</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" scale="0" id="Tc_HNlD7ESIlky2ZkA5hsPkaw_12_2">300,527</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_nWudGCKoxk2IX4H6KE5ABg_12_5">11.42</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" scale="0" id="Tc_5--qutaMW0uipv0IYpLeAQ_13_2">9,300</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" scale="0" id="Tc_v5uku53Y402x_mK_piWFSQ_13_5">13.54</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_tuTAz0XA_Ei-QJeWb1ffHQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" scale="0" id="Tc_xoADNevx8ky0v231YCKRxg_14_2">462,853</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_tuTAz0XA_Ei-QJeWb1ffHQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_xVsjCHenw0SEVuF0mYr8AQ_14_5">13.16</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">37</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_ISXxlmB-DEqYxKEACtr8FQ_1_4"></a><a id="Tc_JTt1xtsaaUmnPuEXBhUDAA_1_7"></a><a id="Tc_XowNFmtNskaDl7FiKQJBLQ_1_9"></a><a id="Tc_b3Zz5NNUwEq9CXGk43s8BQ_2_4"></a><a id="Tc_hojGvT1DPU2UPS0E1mAWTQ_2_7"></a><a id="Tc_TVSrIKCM1E6L6tyGfJK9WQ_2_9"></a><a id="Tc_Zvx4H_3ZEEeSZSGp31VgSA_3_2"></a><a id="Tc_KI3V8kELpka6pYsqydzsIg_3_5"></a><a id="Tc_rHTAikdtgkmC8zbmLgkM-g_3_7"></a><a id="Tc_3e9zlo7q_UixXOqM86Jz_A_3_10"></a><a id="Tc_VR9wtA6nO0WXT0q9K0yCsw_4_2"></a><a id="Tc_3yEWs21mokaKe0dbCe7y6g_4_5"></a><a id="Tc_5dAqbRbpfE2LxcJ2AxI85g_4_7"></a><a id="Tc_yi9ruK2WEUqGu-bwcjZyFA_4_10"></a><a id="Tc_YseoJCsX00aMz7ndwzEY5g_5_2"></a><a id="Tc_GKZbhAvMkUyXIKvawgX_hg_5_4"></a><a id="Tc_oyBHdK2g0UWxpeelQQG8zA_5_7"></a><a id="Tc_1MbVuOnAX020PnVUZUpZVw_5_9"></a><a id="Tc_C1-c7QhnsUeIB9I54jxi_g_6_0"></a><a id="Tc_nap8Q1bOMkWRVXpUMSfeoQ_6_4"></a><a id="Tc_YKdY_77h80OhXqM218CYqg_6_9"></a><a id="Tc_rMlvdn__00mdvpiQklkrAA_7_0"></a><a id="Tc_mkdXWugdlUm78sUxShrr7Q_7_4"></a><a id="Tc_eD2SZd7i00245khOdU2eXA_8_0"></a><a id="Tc_WZ8qGbNGtEKfrM8TLQZ0oQ_8_4"></a><a id="Tc_gyiczalDtEq3yCi9BjCFmQ_9_0"></a><a id="Tc_CK-4GJo14UyjSlmVKEWmYg_9_4"></a><a id="Tc_zw0a6B94YkysE1BvHMgHPw_9_9"></a><a id="Tc_B18Aks5Vtku-288dCT9uqA_10_0"></a><a id="Tc_hHN9PZVKvEOnEhvyNcrauA_10_4"></a><a id="Tc_3JqW7xlWAUuxoX7DwOUGGA_11_0"></a><a id="Tc_ai8qf_c71EqIfjjiDIq_xg_11_4"></a><a id="Tc__OpqusIyg06T_QFmIi4V2g_12_0"></a><a id="Tc_-jSNIaHJOEqPiyN187IPow_12_4"></a><a id="Tc_iLqXhPqyVU6BNkxjw9efxA_13_0"></a><a id="Tc_aElk1aiyYE2G-o8d0Q-Anw_13_4"></a><a id="Tc_ZaxmFyhep0mVi7S5Y8-PWw_13_9"></a><a id="Tc_KBFFi-ygeE6DWSghKsXYUQ_15_0"></a><a id="Tc_-xO0lMDTQ0SPPqyX0-to0w_15_4"></a><a id="Tc_kilu7upqakGG3RurS_es1w_15_9"></a><a id="Tc_B5mTKHoSnkGBScFa3yScYQ_17_0"></a><a id="Tc_DUrbFz0d4UmoVRZn2WQSpw_17_4"></a><a id="Tc_IMNXOF2E5k-A6TTk951JUg_17_9"></a><a id="Tc_YPp7UBF6pkanWe1LbuWUCA_1_4"></a><a id="Tc_fe0kyREHik2pCsrD22o2pg_1_7"></a><a id="Tc_7nnRMLVtLUm1eHtDIkhs1g_2_4"></a><a id="Tc_6YOxu4zo7UeDuVESMlJCbA_2_7"></a><a id="Tc_MplYEJfCTk2ydRZNNbHTUQ_2_9"></a><a id="Tc_sPG-8Adk70GVXMVLEkc4vg_3_2"></a><a id="Tc_tR_R36GbNk-44jATyg_m9g_3_4"></a><a id="Tc_MvUqbCCNC0WIqDQ4ZIiKqg_3_7"></a><a id="Tc_NSrK5KTsd0OkeDAsyxebCQ_3_9"></a><a id="Tc_5_2_yw3pbEiRILfmMcNgug_4_2"></a><a id="Tc_NWoA6CIWkEm9eCeFE1K63w_4_4"></a><a id="Tc_odj3t_In0EOahQW44phhpQ_4_7"></a><a id="Tc_kpHCEYjsmEiYtgPHFQDQIw_4_9"></a><a id="Tc_hXkC-FIaLEqVWUUmY8fE8A_5_2"></a><a id="Tc_q4F_aKBfV0OdTLn__iBo9A_5_4"></a><a id="Tc_L1kleSLf4U-RxhfZpyqZHg_5_7"></a><a id="Tc_JITDXMQejUmw9c1cHoxJCQ_5_9"></a><a id="Tc_K02nO8j9vEG9LFaZZBQpTQ_6_0"></a><a id="Tc_WRKOx0dkkkyJL9BSLPROCw_6_4"></a><a id="Tc_IhiVI1k7bkiVo2_J9jp3aA_6_9"></a><a id="Tc_WLWSZi8qYUCWPT7n11CIaw_7_0"></a><a id="Tc_TCul5F1PfUa6PAEfEkG14w_7_4"></a><a id="Tc_cYaACVhrkEiSUSkw-jrzpg_8_0"></a><a id="Tc_k11nba1s5kC4P_vfpxvZLQ_8_4"></a><a id="Tc_Es37LF3NIkyLmbmrBd9KCg_8_9"></a><a id="Tc_Y07WTxFvNk-zUbgIpTOYUQ_9_0"></a><a id="Tc_A43kxVOlYkWPisC8oxWKFg_9_4"></a><a id="Tc_ZCd1AXwOA0a6ROVqAr7amA_10_0"></a><a id="Tc_YLv1HJYIb0yGTv8zlDJQPw_10_4"></a><a id="Tc_I93LyeXUcUmXyIIw1_TLjQ_11_0"></a><a id="Tc_cVAhmeVQakSZwJwEXIRVLQ_11_4"></a><a id="Tc_ThwD9d-xtUe2iHPDKsGOsw_11_9"></a><a id="Tc_kSFdn1u_AkSN8-R5cS3DXg_13_0"></a><a id="Tc_ezO4omiWOE2PuMB-euebpA_13_4"></a><a id="Tc_zbfxiCMbok6v5LnUI_pouw_13_9"></a><a id="Tc_2lwsvROYMUqp_BJkZ_2Bzg_15_0"></a><a id="Tc_Hmj52kmGCUG7EVtppHGnIQ_15_4"></a><a id="Tc_qffxDh08w0adwI73r5kv3w_15_9"></a><ix:continuation id="Tb_p8abu6eDbkynmCkdLPZdcw_cont3" continuedAt="Tb_p8abu6eDbkynmCkdLPZdcw_cont4"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Performance Share Units</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">A summary of PSU activity is as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" id="Tb_yliwHBRqZkqgUlHWUlo7iA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:48.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:1.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:1.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted-&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.24%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Aggregate&#xA0;</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Number&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;Granted&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;PSUs&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Date&#xA0;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;(in</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;Life&#xA0;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_xNK5CW1PfUKZ-5-p4RhSTQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_98Qpz60zvkqlVOZlbvznPA_6_2">629,874</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_xNK5CW1PfUKZ-5-p4RhSTQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_LDreJn7ngk-N4LFl9fp8dw_6_5">21.19</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_SwfVQ3NBHk6mbktgTezcWg" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_RztXIDx-XE2eEkX4thE_rA_6_7">5.0</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_xNK5CW1PfUKZ-5-p4RhSTQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_rJwc9uTfQ0KYv4Mkw8S4Jw_6_10">28.2</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" id="Tc_-RIm16oWLUieDnpmkSpPIw_7_2">85,334</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_DtHShcwxg0O67w-Vvao4Mg_7_5">54.24</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Performance units issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" scale="0" id="Tc_IaVxUsPa-EWS8JASXIvk_g_8_2">40,665</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw" decimals="2" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_bYbDEOo6LUqHeDu1DpGqUw_8_5">29.08</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_a6zlxirXhk6lj0r53h1eGQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_snQx3FGjJECL6t9umTnvWQ_9_2">755,873</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_a6zlxirXhk6lj0r53h1eGQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_fRfMClA5i0mt_Ncj1i9tDQ_9_5">25.17</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_FtrnJ_6s_kKw-KQrrfTYzQ_9_7">4.7</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_a6zlxirXhk6lj0r53h1eGQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_ImETI1aEjkS0zpbqK3C3lA_9_10">44.0</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" id="Tc_JzSUJP-SwES4hhGyUGIn_w_10_2">77,441</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_adV5B-XPfkuOOrJcZByFXQ_10_5">88.11</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Performance units issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" scale="0" id="Tc_9sp6lhuNv0iN-d2A0WbMQQ_11_2">44,296</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" decimals="2" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_lJjtA5zIS0ig3GDBeoFyOA_11_5">36.63</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="0" id="Tc_TL86ON6PyESxlF4sBamCTg_12_2">100,072</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_ZelRTRZ8LE6Po6_CT6WwAw_12_5">9.66</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_gp_sG8hYfkGNQz4Z91zE6A_13_2">777,538</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_nkgROofxBEaOHzc7LF9NgA_13_5">35.76</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_YPzsi6MWCEyqsEI1207wdg_13_7"><b style="font-weight:bold;"> 4.8</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_xjMo5_LTWEmOWq59Sw7G0w_13_10">57.4</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested or expected to vest at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" scale="0" id="Tc_57POzMFvUU-tDSoQJBeCAQ_15_2">777,538</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_35CsmyE7GE2CzJqrQXth4A_15_5">35.76</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" id="Tc_PPu2V0GjJkqBuzk6iyK4HA_15_7"><b style="font-weight:bold;"> 4.8</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="6" id="Tc_A0QgA6l9YkCNdbQo43Y2Rw_15_10">57.4</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Exercisable at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg" decimals="INF" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" scale="0" id="Tc_UjhGRsuNEU6115obK4XM2Q_17_2">561,034</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg" decimals="2" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" scale="0" id="Tc_DSMq5PMnEEG20nYtMbJq2A_17_5">23.15</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" format="ixt-sec:duryear" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" id="Tc_dBA11n23YUu2B2NuSp_T5A_17_7"><b style="font-weight:bold;"> 3.6</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" scale="6" id="Tc_3kvYKJGYJEW84zY1PVlWpw_17_10">41.4</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January&#xA0;31, 2022) that would have been received by PSU holders if all PSUs had been vested on January&#xA0;31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As of January&#xA0;31, 2022, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_GHaa23KtmkenggEXJx6kNQ">6.7</ix:nonFraction> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Narr_EAARlRXaEkCOYMC79m3uxA">1.1</ix:nonNumeric>&#xA0;years. The total fair value of PSUs vested during 2022 was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" scale="6" id="Narr_7nm0LQ2gUUKMHnRoCoZwUQ">3.6</ix:nonFraction> million.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Restricted Share Units</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">A summary of RSU activity is as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" id="Tb_RVPw5DKCw0G1_MxOtA0AQA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number&#xA0;of&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Granted&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Remaining&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">RSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Date&#xA0;Fair&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contractual&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#xA0;Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#xA0;Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Life&#xA0;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#xA0;(in&#xA0;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_LTqMLIM6gE2LGZtryjqdiw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_ojptEiFlM0-y6vQ3Env6YA_6_2">374,677</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_LTqMLIM6gE2LGZtryjqdiw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_tqGJNjj5OUWhoCvM1UaQvg_6_5">16.57</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QNRGEZqKbk2H-xJ1qEeenA" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_sBZ-KTQ5o0e0EiGr8Yp7cA_6_7"> 5.0</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_LTqMLIM6gE2LGZtryjqdiw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_tzQsYgC1aku6pd9sSS4tGw_6_10">16.8</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_CJG2wdGE-UWUMxrjAtlXlw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" id="Tc_rVIpH8bgFE6PKjbjF5tRoQ_7_2">57,518</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_CJG2wdGE-UWUMxrjAtlXlw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_Cy6iwh0u90SdIILTl1pt8w_7_5">43.25</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_0PjYLYex6kWbjrP31EV_zQ" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_7vbIQfVUUEidyIfptxHeBg_8_2">432,195</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_0PjYLYex6kWbjrP31EV_zQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_V-dBhELJzkShD4dSY_tF2Q_8_5">19.98</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_CJG2wdGE-UWUMxrjAtlXlw" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_gt14zh3HfE-2yUeV7_AGBw_8_7"> 4.7</ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_0PjYLYex6kWbjrP31EV_zQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_emhyjq57OUCohRFvefMmCA_8_10">25.2</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" id="Tc_AC-DLaOtSEG1AVpkd5OehQ_9_2">50,099</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_3WrRPYZODUmBFY15Ugpy_g_9_5">65.33</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="0" id="Tc_Bqp2M5_MBEqd4gE738OtJg_10_2">71,314</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_UHSvO3Nh3UqrUBYJXcLHeA_10_5">7.14</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_0a5XxpGLJ064rnQHCNDURQ_11_2">410,980</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_LLvEjcpwjU-WdHp-uYzsKw_11_5">29.17</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_UjRPjusFFEm5gG-cBjz8Zg_11_7"><b style="font-weight:bold;"> 5.0</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_Voe4P3ij1k2L6RDiJpy45Q_11_10">30.3</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Vested or expected to vest at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" scale="0" id="Tc_KExsUwkj_kq9VQPNIRsk6A_13_2">410,980</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_5EsU2tEAbUW0oSdVYMGyRg_13_5">29.17</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" id="Tc_XAedoh6qT063KRpjw3-LwQ_13_7"><b style="font-weight:bold;"> 5.0</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="6" id="Tc_6rDYb-kI6kK1Orgq7st-RQ_13_10">30.3</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Exercisable at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA" decimals="0" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" scale="0" id="Tc_iqIFZq33S0mf6ONyu00HQg_15_2">355,765</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA" decimals="2" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" scale="0" id="Tc_uWoi9GOCxEOW5ej7kWE7Rg_15_5">24.62</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" format="ixt-sec:duryear" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" id="Tc_7L97SrYT7UCETDF6rJYnDw_15_7"><b style="font-weight:bold;"> 4.4</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" scale="6" id="Tc_leLCB1uT4kSpL1tnnPVUBw_15_10">26.3</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">38</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_vGTcG4uiTkeYKeEFT4LIKw_1_4"></a><a id="Tc_S9nR0eHcKEegf5P8W19ouw_2_4"></a><a id="Tc_t4MOhDrpOUqMRMu_ZMauyg_3_2"></a><a id="Tc_nMpmg86EcE-2JwBIPCzgeg_3_4"></a><a id="Tc_j_NJAegufU-hzwiItuZRew_4_2"></a><a id="Tc_dLEtSbZGLUS2JMa7OHWP5g_4_4"></a><a id="Tc_wbjwznPIfUqfj_Ki3AdIBg_5_2"></a><a id="Tc_n9fEhjTvrU6comSHWV0gUA_5_4"></a><a id="Tc_JfgwcwulU0KjMYrtU4Tqeg_6_0"></a><a id="Tc_18SX7SQK402iG3IJsnRDtg_7_0"></a><a id="Tc_EPuUOJcqYEiqgnX5gn9h5Q_8_0"></a><a id="Tc_iGEo2uwhX02n4IWONOfDNA_9_0"></a><a id="Tc_8m9ISsX--kWDntmC1YCp7w_10_0"></a><a id="Tc_Wjj-rGH3e0OkzUtrr4HcKQ_11_0"></a><a id="Tc_Zihdw2qWlkO4JjnSyBzNfQ_12_0"></a><a id="Tc_QPMLiS7_zEC72cNDTruLbA_13_0"></a><a id="Tc_AbSahdmVJ0aa6t1cT8E4Ag_14_0"></a><a id="Tc_ppjHCc6TzEO3yonDHk_9OA_16_0"></a><ix:continuation id="Tb_p8abu6eDbkynmCkdLPZdcw_cont4"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January&#xA0;31, 2022) that would have been received by RSU holders if all RSUs had been vested on January&#xA0;31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As of January&#xA0;31, 2022, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_0PK_evZMjEWCVJRdxuvaTA">3.2</ix:nonFraction> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of <ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Narr_zNTJKno44UKl2GckiE-ayA">1.6</ix:nonNumeric>&#xA0;years. The total fair value of RSUs vested during 2022 was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" scale="6" id="Narr_8vNB2sCym0Ov_su248o_Ag">2.6</ix:nonFraction> million.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Deferred Share Unit Plan</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As at January&#xA0;31, 2022, the total number of DSUs held by participating directors was <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_DW40VpY3vUOYNnDB7B6xUA" decimals="0" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsOutstandingNumber" scale="0" id="Narr_GWcwmF7g7EOigBZyl8amYQ">252,011</ix:nonFraction> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_rnnC8H1lFUaMzqv-faVMZw" decimals="0" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsOutstandingNumber" scale="0" id="Narr_bOuJoh6vgUyuyACirhLhkA">226,525</ix:nonFraction> at January&#xA0;31, 2021), representing an aggregate accrued liability of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_DW40VpY3vUOYNnDB7B6xUA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr_AVraJXrwC0Cbhg5p60X2Xg">18.3</ix:nonFraction> million ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_rnnC8H1lFUaMzqv-faVMZw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr_zRB19vQQiU-ZB7z7dn6nxA">13.8</ix:nonFraction> million at January&#xA0;31, 2021). During 2022, <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_r1XeBldg10OTWilpIrUQ5A" decimals="0" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsGrantsInPeriod" scale="0" id="Narr_boSk1shlAE2DA6tBhPUGOQ">25,486</ix:nonFraction> DSUs were granted and <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_r1XeBldg10OTWilpIrUQ5A" decimals="INF" format="ixt-sec:numwordsen" name="dsgx:DeferredShareUnitsRedeemedAndSettledInCash" scale="0" id="Narr_fdAyvVh2Tk-6p3nZzQnRXQ">nil</ix:nonFraction> DSUs were redeemed and settled in cash. As at January&#xA0;31, 2022, the unrecognized aggregate liability for the unvested DSUs was <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_DW40VpY3vUOYNnDB7B6xUA" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_Jlp3rz3HH02135OEzTBcNQ">nil</ix:nonFraction> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_rnnC8H1lFUaMzqv-faVMZw" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_Pfbff9bFbUCvphMwPJZPUg">nil</ix:nonFraction> at January&#xA0;31, 2021). 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 in our consolidated statements of operations was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_r1XeBldg10OTWilpIrUQ5A" decimals="-5" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsCompensationExpense" scale="6" id="Narr_UYjanJvI7Eqx1GOGlPVLsw">4.5</ix:nonFraction> million, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_ayZ85oCYrkqVqWmMqqiP9g" decimals="-5" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsCompensationExpense" scale="6" id="Narr_ELwBgqmKKUCynoi_Ze6KFQ">4.6</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_8PMORFsxEEKKw8OpaNUE7g" decimals="-5" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsCompensationExpense" scale="6" id="Narr_RcWKwxA-dkScJvvjlt6VwQ">5.0</ix:nonFraction> million for the&#xA0;years ended January&#xA0;31, 2022, 2021 and 2020, respectively.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Cash-Settled Restricted Share Unit Plan</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">A summary of activity under our CRSU plan is as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" id="Tb_nEi1tgWi20OJ_cHZKUm3UA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:68.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-&#xA0;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average&#xA0;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number&#xA0;of&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Remaining&#xA0;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">CRSUs&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contractual&#xA0;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Life&#xA0; (years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsOutstandingNumber" scale="0" id="Tc_1RI8Vef3VEKiVvTl-VhytA_6_2">42,727</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" format="ixt-sec:duryear" name="dsgx:CRSUAwardsWeightedAverageContractualLife" id="Tc_pc2f9cFA1k25BGZlPpSO-A_6_4"> 1.6</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsGrantsInPeriod" scale="0" id="Tc_iS3mUks7-U-Pnn5FrQbiGg_7_2">26,629</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested and settled in cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsVestedAndSettledInCash" scale="0" id="Tc_Yn3a6oS-R0Get11es4dTxQ_8_2">30,480</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsForfeitedInPeriod" scale="0" id="Tc_lEbrwNrJ5kiOm55fZN4Yhg_9_2">248</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsOutstandingNumber" scale="0" id="Tc_HdOyMgTivU2LS-7ODA1dtg_10_2">38,628</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" format="ixt-sec:duryear" name="dsgx:CRSUAwardsWeightedAverageContractualLife" id="Tc_TBkbQoEbW0Wv2_QRfIoIHA_10_4"> 1.5</ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsGrantsInPeriod" scale="0" id="Tc__sseG1mNBES6yAGmB5HmgA_11_2">12,776</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested and settled in cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsVestedAndSettledInCash" scale="0" id="Tc_QYae2ppeM0e6E_xnE46v-A_12_2">26,755</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsForfeitedInPeriod" scale="0" id="Tc_CY2Sn2CHlUCfSy1ODDP_Zw_13_2">221</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsOutstandingNumber" scale="0" id="Tc_EgkyauKnckKjWhxksjVeAg_14_2">24,428</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" format="ixt-sec:duryear" name="dsgx:CRSUAwardsWeightedAverageContractualLife" id="Tc_1d3HFv_2BUOHh9t60BcqGg_14_4"><b style="font-weight:bold;"> 1.4</b></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-vested at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardNonvestedNumber" scale="0" id="Tc_ICGqB2M_i0yL2zdoWBGdKA_16_2">24,428</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" format="ixt-sec:duryear" name="dsgx:CRSUAwardNonvestedWeightedAverageContractualLife" id="Tc_zBGW-oSK4kWleZoXkwVYQw_16_4"><b style="font-weight:bold;"> 1.4</b></ix:nonNumeric></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_h9V1252FXUaVf6IBeLfeCg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr_TAxwFdV1NkeqaLAwCEV1NA">0.8</ix:nonFraction> million at January&#xA0;31, 2022 ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_DwROZOUKqUyASpoDf9wQhg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr_qeii-kaPCUaI1Vqo8DBM6Q">0.9</ix:nonFraction> million at January&#xA0;31, 2021). As at January&#xA0;31, 2022, the unrecognized aggregate liability for the unvested CRSUs was $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_h9V1252FXUaVf6IBeLfeCg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_qJDqNLZ5506agojmXV2_XA">1.0</ix:nonFraction> million ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_DwROZOUKqUyASpoDf9wQhg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_TIiU7rI02UaXTzwjjjov7g">1.5</ix:nonFraction> million at January&#xA0;31, 2021). 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 in our consolidated statements of operations was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_6gWvZqMFu0-PySAX6jXeNw" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsCompensationExpense" scale="6" id="Narr__Au_Qh1gJk63ZzqaN0WJnQ">1.3</ix:nonFraction> million, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_yN0rFVro70eOMuM0Ex5FRQ" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsCompensationExpense" scale="6" id="Narr_98AHr-f2y0CLdjFRuyi4Qg">1.1</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_Vu5P28ZOKE2xlWNdAuVDzA" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsCompensationExpense" scale="6" id="Narr_lJ-_zSBOlEC5jGtC_AsM_g">0.9</ix:nonFraction> million for the&#xA0;years ended January&#xA0;31, 2022, 2021 and 2020, respectively.</p></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">39</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_a3b34566_46ce_4938_8684_fb874b893b88"></a><a id="_661cfd42_a0f5_47ad_9ae5_5cce091581e0"></a><a id="_d1a732a8_e027_4fb1_be9b_498ca69f3b06"></a><a id="_bab68ca4_3d62_481b_8e94_6197dfb1d64d"></a><a id="_a6406c97_dec7_478d_911e_be8090868d93"></a><a id="_0108f9b3_89ff_48d1_a419_3cee4a8ed484"></a><a id="_daa6f1c2_168f_4795_9a48_2f8d72e682bb"></a><a id="_174de8c7_3a65_46b9_8783_102c686b7e72"></a><a id="_3b1cef2c_0730_44ea_b09b_5bfabe988074"></a><a id="_dea5052b_50f5_4268_b4d6_78e6892ef6d3"></a><a id="_be38c359_090f_4c09_9c10_41b2ce223c9e"></a><a id="Tc_VLcYw9HmuEKDUg1z91CSvg_1_0"></a><a id="Tc_EXCTGVFER0qSbmej5WEVmA_1_2"></a><a id="Tc_FCgCSfETP0G2XMwcX4-a2g_1_4"></a><a id="Tc_PSOf_ugSaEaHM8bqP3bEjw_1_6"></a><a id="_af4cbc3f_c5e5_40cc_880f_bbdd7a089f38"></a><a id="Tc_Od5Drw0OKUaf5TcKWAHvYg_2_2"></a><a id="Tc_vxV5HHqiD0-mOG4lwfus7Q_2_4"></a><a id="Tc_qKzHbe0LxUSauuWz_atX5Q_2_6"></a><a id="_8f262e57_be2c_41b6_a79d_f403c00594b2"></a><a id="_f7be0763_7397_47d2_815a_2773f45fce8a"></a><a id="Tc_q76jmp0eq0-E3ByOH74KdA_4_0"></a><a id="_03a58f06_8880_458d_b6c3_a4ec94fd378a"></a><a id="Tc_t5XTS2GrCEmAostJP_gvMQ_5_0"></a><a id="_d04c86ed_de82_4f7b_a869_405dffc43947"></a><a id="Tc_hSw16T4w9k2zna1WkwYoZw_6_0"></a><a id="_e459a0da_0a56_4d0a_859d_afaea4a8d729"></a><a id="_e727ff2b_bfc8_438f_8fe9_01022a020f64"></a><a id="_7777711a_ca13_4f43_bf5b_31e41e0ecd95"></a><a id="_587db0d1_2cbb_4195_96e1_aafe401f7224"></a><a id="_4a7a9102_80be_4f4d_a24c_75f3cfd21ed2"></a><a id="_2b861723_4b7b_4a87_971c_83629def38d4"></a><a id="_b85d9da8_fcbb_48b3_b340_c1547920c321"></a><a id="_76be1323_23df_49d0_80dd_d5d7ea2b5510"></a><a id="_0c5870de_9601_4c25_8ee9_956bfc79ed98"></a><a id="_3f57688c_d7c7_4e55_9f6c_419c1c87d229"></a><a id="_d0fa3a50_4d0d_443a_9862_9482d8aac1fe"></a><a id="_5ff310ee_44cc_403b_b7ea_37b75e660be1"></a><a id="Tc_x0Kf3HadJU2tTxgyxQ77Kw_1_0"></a><a id="Tc_0vF1FSQ1aEawONwYHV2_yw_1_2"></a><a id="Tc_LRlgU-om9EO6QHsCIdHCHA_1_4"></a><a id="Tc_do6yLQS2ZEOgni6S4fqGSg_1_6"></a><a id="_3c743c46_b770_4c11_965a_7362e3438220"></a><a id="Tc_m240gj6tLEGt9qzLc-8nTw_2_2"></a><a id="Tc_RXFUTxPFJUSLCMStph3Fog_2_4"></a><a id="Tc_QYCPQ0_fAESAcC7BCOiafw_2_6"></a><a id="_1668306b_ae64_46b6_b2ae_8ebab671caa2"></a><a id="Tc_sAbP-g5Dbkaj8a7bEvQe8A_3_0"></a><a id="_8844865d_88d9_45b9_87cc_3ef03ef6b682"></a><a id="Tc_7yH2c9hqk0Cyln1zbLujyA_4_0"></a><a id="_e30da954_c610_4912_8668_9a3845859427"></a><a id="Tc_U_jeW5TOIEudLKn96mHi2Q_5_0"></a><a id="_8bec2c11_660a_4f53_92c7_2434ae5290f9"></a><a id="Tc_oeQja2fIikSAAGZpOQxXcw_6_0"></a><a id="_6e09dfae_48a9_4db6_be50_d9b958448704"></a><a id="_6cc6cab5_d038_4ead_ad34_6069ba4de463"></a><a id="Tc_ARiBqVOdvkqR9TEfvEzJXg_8_0"></a><a id="_ac4a0f8f_c06a_40eb_8366_c1da3247672d"></a><a id="Tc_62Wk1dkBVUi7oBT_UOvtAA_9_0"></a><a id="_1b223201_ef7f_4c48_8d87_98cf7271ba4a"></a><a id="Tc_FS9oS9zp9EyfvgLPkaliBw_10_0"></a><a id="_789ac922_8151_454a_b708_fc5ce2e58030"></a><a id="Tc_cMrwWZQgQkOsF6t6H2dNmA_11_0"></a><a id="_10d66583_2bbd_413c_b544_fa7d9f950fa9"></a><a id="_ff6539c4_26f0_4959_afde_02787bf0cfd1"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:IncomeTaxDisclosureTextBlock" id="Tb_8J0aS8KyWkeghm1zakFT8w" continuedAt="Tb_8J0aS8KyWkeghm1zakFT8w_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;18&#xA0;- Income Taxes</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Income before income taxes is earned in the following tax jurisdictions:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" id="Tb_SVb7y_NYU06kQpSfCbWxeQ" escape="true"><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:55.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_CA_dp4Lg9uba0meUHvS8vBMVA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_Xdx78mTEM02eeZR8cjUCqQ_4_2">36,312</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_CA_-qoUg8uSNEmdIC9kGUAjGQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_npFZP1uZWkKqA3HiEvI6Aw_4_4">31,307</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_CA_8UKHeEHvmUybpv2vplN8OA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_TansPqS1dUCymFfc8IHrbg_4_6">19,557</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_US_Vrz8x3cMY0eGg2MgcD_XJg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_QUjag3ykskS8W7PZmRv26Q_5_2">32,338</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_US_1k1e81jvskaCGwqzFZNxow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_81rLyQ07C0iSWGSstkpYvA_5_4">26,072</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_US_A-vqgqS9w0Khx2tJGBb58w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_vrpPK84Rz0e0Rkips2tJpA_5_6">19,962</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Other countries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_2-m8W4ieSkm2EHWoicblBg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_qLqGVOcWpk271sogfoaNTw_6_2">33,960</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_JVIx6YYHZ0SFgUNH4y46NQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_-xSzbBlptU-TRyeuCV4V4g_6_4">12,990</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_0BoiksB-jUqzI_Pn77OHOg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_xGzBEnua0E-ZIq5TBJBLRA_6_6">8,516</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_t35tTRiLd0-31Glbm6Apsw_7_2">102,610</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_ZkgynyRlskiCk_9YAARPrg_7_4">70,369</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_gEVSaN_IwEOvFI4AWjiEiQ_7_6">48,035</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Income tax expense is incurred in the following jurisdictions:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="Tb_vUwXxOQcp0GPtKu0PIYBnw" escape="true"><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:55.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Current income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_CA_dp4Lg9uba0meUHvS8vBMVA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_P385EAWEyUyWUwygFpo6Jg_4_2">1,817</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_CA_-qoUg8uSNEmdIC9kGUAjGQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_dCGx3QaGbUCxSfWXmKuiVQ_4_4">1,875</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_CA_8UKHeEHvmUybpv2vplN8OA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_Bo_25_KdoEyvI9nHrbYlIA_4_6">1,020</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_US_Vrz8x3cMY0eGg2MgcD_XJg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_YsmDC4B2gUepyei8vu4a9Q_5_2">8,689</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_US_1k1e81jvskaCGwqzFZNxow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_V39Xx29oMUuQMOB1QFWGdw_5_4">3,050</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_US_A-vqgqS9w0Khx2tJGBb58w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_JT2Wn1Nrw06I8pTScAwc_Q_5_6">3,496</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other countries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_2-m8W4ieSkm2EHWoicblBg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_5inqu8GaB0m0JFptwtoYkw_6_2">4,308</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_JVIx6YYHZ0SFgUNH4y46NQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_eRPZ70SCCE-x4MyZFDrKFw_6_4">4,921</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_0BoiksB-jUqzI_Pn77OHOg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_tNuF4hem8kCwQKH7B7DjdA_6_6">779</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_7WkWbITCWUmUntkyDRLNow_7_2">14,814</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_Tvvbcm1lVE-wNNHsouiQtw_7_4">3,746</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_GBdMrfXPkUu-_sXIRQBUOw_7_6">5,295</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Deferred income tax expense (recovery)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_CA_dp4Lg9uba0meUHvS8vBMVA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_aVY1eq2MUUasoj16_GrCIA_9_2">8,381</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_CA_-qoUg8uSNEmdIC9kGUAjGQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_gGcX3-BZZ0ia6r-8wbqWGQ_9_4">7,047</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_CA_8UKHeEHvmUybpv2vplN8OA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_6oJ07D3e10qycBs8AevqeQ_9_6">5,008</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_US_Vrz8x3cMY0eGg2MgcD_XJg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_r2ww8CyvykqQRyXNdqhGmw_10_2">1,941</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_US_1k1e81jvskaCGwqzFZNxow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_T7lN5feq5026vcyPtxIDvA_10_4">9,537</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_US_A-vqgqS9w0Khx2tJGBb58w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_kSFfUZeAJkeeUzDLXQ355Q_10_6">1,390</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other countries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_2-m8W4ieSkm2EHWoicblBg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_VO0Qeaf-fUCxQMmkbui5wA_11_2">8,808</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_JVIx6YYHZ0SFgUNH4y46NQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_Ady1D6AEMkymw_shuOJORQ_11_4">2,061</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_0BoiksB-jUqzI_Pn77OHOg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_l0IJJhaNNkqlLOyjCtXKAA_11_6">655</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_qvAQquaZPUyVD5vcb21i5A_12_2">1,514</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_SPS1NZBAlEWKlKvPEondCA_12_4">14,523</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_StrEWOixw0euFu93e4WZLQ_12_6">5,743</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_SiKOsKftH0qO72OFZsuU6w_13_2">16,328</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_MYads7CcfUOpZUjL_lZolg_13_4">18,269</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_pnTOiJzCcEae6-1yO8KGPg_13_6">11,038</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Income tax expense for 2022, 2021 and 2020 was <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="dsgx:IncomeBeforeTaxesPercent" scale="-2" id="Narr_ZmA9HjSr8kqIcFjE0oMI4Q">16</ix:nonFraction>%, <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="dsgx:IncomeBeforeTaxesPercent" scale="-2" id="Narr_-6S4tsi6dkqtOsMxNbC4SA">26</ix:nonFraction>% and <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="2" format="ixt:numdotdecimal" name="dsgx:IncomeBeforeTaxesPercent" scale="-2" id="Narr_FJqQ_KG4fkWelz-LUY_a7Q">23</ix:nonFraction>% of income before income taxes, respectively, with current income tax expense being <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="Narr_XIL6ELC0N0SgAq93onv0pQ">14</ix:nonFraction>%, <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="Narr_o0eFyg729EqLtvbETQHiDQ">5</ix:nonFraction>% and <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="Narr_Sx4eK1iACECWz3NtjPMRMw">11</ix:nonFraction>% of income before income taxes, respectively.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Current income tax expense increased in 2022 compared to 2021 primarily due to a current tax recovery in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Current income tax expense decreased in 2021 compared to 2020 primarily due to a voluntary change we elected to adopt in accounting for deferred revenue for income tax purposes in the United States. This change resulted in a decrease of $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember_z7MAqE8efEW_Ldoeku3vXw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CurrentFederalTaxExpenseBenefit" sign="-" scale="6" id="Narr_rKIg3QGUH062dRFhZUJPvQ">9.3</ix:nonFraction> million in current income tax expense in 2021 and a corresponding increase in the <span style="-sec-ix-hidden:Hidden_oRGbY52OSUKIW_NyZgdorw;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">deferred</span></span> income tax expense for the same period. This decrease was partially offset by an increase in income before tax in other jurisdictions as a result of growth in the business.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Deferred income tax expense decreased in 2022 compared to 2021 primarily due to additional deferred tax expense in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company as well as a release in valuation allowances recorded in 2022 related to tax losses in EMEA carried forward from previous periods.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Deferred income tax expense increased in 2021 compared to 2020 primarily due to a voluntary change we elected to adopt in accounting for deferred revenue for income tax purposes in the United States.&#xA0;This increase was partially offset by a release in valuation allowance for other jurisdictions.</p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">40</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_a4345a42_040c_4386_88f3_498306d4a22e"></a><a id="_9af477a1_14da_4f23_83e1_5f7267769c85"></a><a id="_512c90f7_14ad_4ada_83ea_66669466204f"></a><a id="_21ebdf95_32ef_4ecf_bb08_d984c858673e"></a><a id="_1f15d1bd_8ed4_490c_81a9_c79acd022e97"></a><a id="_cdb52bfd_92e4_40e2_8dca_d29ea45f03e0"></a><a id="_86f243c0_1947_4ab3_b3b5_778dfdd584b6"></a><a id="_c078a133_d8bd_4fcc_a30c_0f29fa813177"></a><a id="Tc_5muP2bK020qO3_ztQWfPbQ_1_2"></a><a id="Tc_JNGJKnMdDUSj1dPIPqSx7Q_1_4"></a><a id="_738d3d5d_af4e_471a_af70_dccb402e3784"></a><a id="Tc_WdVuoImvSkKrT6EZ8PIt_w_2_2"></a><a id="Tc_TOm-TZ-CTE-42sF1HHtC2g_2_4"></a><a id="_2f98fcd2_900f_4ea2_b670_5d991ccf5c35"></a><a id="Tc_Tet694PQgE203Vn3RhSRTw_3_0"></a><a id="_d5f874bb_e3b7_4878_8773_79b63de7c1bd"></a><a id="Tc_-wVe_5Q7MkKt6FCIW7vo7g_4_0"></a><a id="_b2b87909_b721_479b_b35f_751a75bfbd29"></a><a id="Tc_GVCKjzRnC06HzVgyc3lhag_5_0"></a><a id="_afceda12_49ea_429a_b3e6_525ddec5d296"></a><a id="Tc_OSSqxq81lkKGRdNSs4vs2g_6_0"></a><a id="_6c264c78_8a7b_4901_bd66_449380814caa"></a><a id="Tc_56rrE21kH02Xje_za0ttpw_7_0"></a><a id="_2a1cc144_e1ba_46a0_b18d_9325503e2f69"></a><a id="Tc_Qsjj5gV1hEamMJ6JUG4hGQ_8_0"></a><a id="_57497479_4b90_4848_83a4_9ae319b75811"></a><a id="Tc_grCux65A1U2--isgFTKTMQ_9_0"></a><a id="_d1143817_0445_4bca_95a7_0a27dd084237"></a><a id="Tc_TCowqqrH1ESKD_ltW0socw_10_0"></a><a id="_7fe9c5b4_b645_41b5_b235_7811c3ee7324"></a><a id="Tc_3iJH_N9xiEeqa3Q_8p1mZg_11_0"></a><a id="_30f59f97_d9b3_4742_9939_69c1a52f4da3"></a><a id="Tc_ov4FWIuARkevxpy5Z7gu6w_12_0"></a><a id="Tc_PkPamlzsHEeTbxUEjC-qRA_12_2"></a><a id="Tc_IFiGBq2NiUCiiHuTlK2aGg_12_4"></a><a id="_62cddcec_5cd2_40a2_a37b_064a13e26634"></a><a id="Tc_xpZOY8Btpk2Z7IK1XCaqCA_13_0"></a><a id="_bdf457cc_5034_41ca_83be_54cb3b4fa5be"></a><a id="Tc_6ENL35gIV0ejidDcc5pBKw_14_0"></a><a id="_45da1c22_1788_4b02_b959_9a182aa41ff2"></a><a id="Tc_pwvpY-9ygUqM5Z0TLAVIDA_15_0"></a><a id="_f0c27def_913c_4a7b_a897_650db8cda6c9"></a><a id="Tc_Twmd_Hi2R0SgsbR9V5fT3Q_16_0"></a><a id="_efb9bb96_d2ce_470a_b11d_e18b9b57a844"></a><a id="Tc_Tmc7gzYDaUuvpBeDn7CX0w_17_0"></a><a id="_d7a054c6_7e52_42e5_8a93_47bb9d1b9bfd"></a><a id="_1df05377_1afd_401e_8c98_9218b19cc878"></a><a id="_79fb781b_d758_4e07_971b_5e6ef23b2d52"></a><a id="_01c4cd3c_5531_4c1e_adc7_aea67d6b6958"></a><a id="_8580ba8a_02f4_4c56_b6d5_d6c20747da93"></a><a id="_24163541_e99a_477a_8dd1_b95fbbb64674"></a><a id="_f5245aea_7062_4275_96a2_2f3a4c9fa976"></a><a id="_76fef253_31a3_4aa6_a5c2_339e9c930a32"></a><a id="_0f281f26_9425_43e0_bd34_5fd0bf307d29"></a><a id="_65cc2e9b_c33a_44f5_b0e2_1bb4e24fc3e5"></a><a id="_410e6937_2154_4db2_aca5_335636f7c614"></a><a id="_95b596a8_b403_4822_bbc7_ab36eccaafcc"></a><a id="Tc_RooYmlDX2UOWUVYFKjvoKg_1_0"></a><a id="Tc_as_nf6WmMkSoLPosUsa38A_1_2"></a><a id="Tc_R6ZHf-ZkxE2o2eUIXKAwRg_1_4"></a><a id="Tc_r3oQDMHsQ0y_pHfBAk3l-A_1_6"></a><a id="_c662ecd2_c1ce_438b_a162_163148fe82ca"></a><a id="Tc_vAE967L7D06HRrhJyZa3aA_2_2"></a><a id="Tc_geZXCOH3CUy6Viw0eDMLhg_2_4"></a><a id="Tc_M4Rk5VRsqUe3N0Ys1xpLbw_2_6"></a><a id="_639c4c99_58a2_445e_aa57_ee4be07cf5a8"></a><a id="_fa2bacfa_5495_426d_a9b1_46aae3eca377"></a><a id="Tc_BQeQYUQ5HE-JrZ2gutG2Mw_3_0"></a><a id="_d58763c8_890b_4c2a_962d_152ea7f149c4"></a><a id="_91564872_56db_407a_914d_15a28a3564dd"></a><a id="Tc_0PNpi0wwxUqDe1dAG20t0g_5_0"></a><a id="Tc_aLRKh2ZBQ02KhMscqol4LQ_5_3"></a><a id="Tc_BwIkvUp5VUa1OQUjzrXHMA_5_5"></a><a id="Tc_1KRdlBlTcU6u0a2m-TWlaw_5_7"></a><a id="_79b4d220_18f5_40eb_95b1_329e4342e024"></a><a id="_d7d5c7fe_bc3a_439c_ac78_69cdbec200f2"></a><a id="Tc__50E_NNM5Eu-YwRixLrUIw_7_0"></a><a id="_3bae961f_33cd_4e99_8815_081acccc1ab7"></a><a id="Tc_rKI8GqA9OE2lx6zLR_0sGA_8_0"></a><a id="_982fb15c_7cb8_434a_a955_c3ff5a19c545"></a><a id="Tc_OwTNGyhZGUWSkkf-7O8dUQ_9_0"></a><a id="_4d7d80d1_e848_490e_92e9_f0347935b780"></a><a id="Tc_sqCeEZ_aAkKyvXH02L7YNQ_10_0"></a><a id="_1e9a96e7_c141_4823_84e5_409f6dccd0d9"></a><a id="Tc_2Fc8Lpr6x0CtlAWAElZtHw_11_0"></a><a id="_9503548c_3131_47f2_8f9b_5a93328655cf"></a><a id="Tc_MAzfXXdIw0eWJXWBTLgwGQ_12_0"></a><a id="_df6f43d7_cf9b_4675_8273_bfbbfcb49d76"></a><a id="Tc_FFietosLQ0WRcYRd9qEIgQ_13_0"></a><a id="_03bf8e91_5eec_44c8_9e96_d333b3aba9dd"></a><a id="Tc__xPtlWFtLEG8FJiM8ane1g_14_0"></a><a id="_3dd03ff7_ea4a_433a_8a9b_b232b8ac5f57"></a><a id="Tc_Rx9VrFoEyEunS_m0p-jB6Q_15_0"></a><a id="Tc_8cSlDsMmUUO9j7AtCNcsXg_15_2"></a><a id="_7e846d55_7978_4163_9513_1e78d498ead5"></a><a id="Tc_Q6O1h9GxoEm6CF9HlUz3Kw_16_0"></a><a id="_f1f66563_06c8_465d_9e84_fb2382f76cd3"></a><a id="Tc_5tZse1ylIESEq8Nn7XfAeA_17_0"></a><ix:continuation id="Tb_8J0aS8KyWkeghm1zakFT8w_cont1" continuedAt="Tb_8J0aS8KyWkeghm1zakFT8w_cont2"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The components of the deferred income tax assets and liabilities are as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="Tb_BL8lMeBVFkCROqVkWt0hfg" escape="true"><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:69.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accrued liabilities not currently deductible</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" scale="3" id="Tc_6gMBmvOvp06fp3k04dyrnw_4_2">5,408</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" scale="3" id="Tc_zK2VSUpZ50C7lv4gn2-heQ_4_4">4,471</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accumulated net operating losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" scale="3" id="Tc_LsOlIVV2S02g299krPmY3w_5_2">10,594</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" scale="3" id="Tc_BH9f5AK7FUy6GbtRLo5Idg_5_4">12,866</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Corporate minimum taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsCorporateMinimumTaxes" scale="3" id="Tc_jaA7jcxvN0uI0g8SVZOasw_6_2">2,346</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsCorporateMinimumTaxes" scale="3" id="Tc_ODcbZu4PuUCchiPDtsVr6g_6_4">1,596</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Difference between tax and accounting basis of property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment" scale="3" id="Tc_zfgCjVhLLkmxrS2ICPwNmw_7_2">12,021</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment" scale="3" id="Tc_hgNukdIizkCjPapz3zbC3Q_7_4">23,754</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Research and development and other tax credits and expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch" scale="3" id="Tc_sYqztnVSTEuYR0OPNHckgQ_8_2">1,172</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch" scale="3" id="Tc__B5p2TtVrEmLyHsmJz1zHg_8_4">1,649</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred income tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsGross" scale="3" id="Tc_e7NYx2HGeEa9h-677Nzjyg_9_2">31,541</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsGross" scale="3" id="Tc_SUB4b8WpsUih3u-hW9cJTw_9_4">44,336</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Difference between tax and accounting basis of intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" scale="3" id="Tc_D4-kMtkJzUmypnBEy6wR_g_11_2">47,255</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" scale="3" id="Tc_pkWReBaquE6cR80UG-5OKg_11_4">45,030</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Difference between tax and accounting basis of property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Other temporary differences</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesOther" scale="3" id="Tc_oB8WiwMtxkORBS9g1DdLiA_13_2">2,886</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxLiabilitiesOther" scale="3" id="Tc_5ERJ6C7zm0uHSJ-oE04kLg_13_4">2,109</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred income tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilities" scale="3" id="Tc_bD3X36FX5E2G4IaB8FCgOQ_14_2">50,141</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilities" scale="3" id="Tc_l2q-bJalvUKOTc1P13PfSw_14_4">47,139</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net deferred income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsNetBeforeValuationAllowance" sign="-" scale="3" id="Tc_GMbQXYy2rEucNYSp6UzhCA_15_2">18,600</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsNetBeforeValuationAllowance" sign="-" scale="3" id="Tc_6sx6s016KEqtc_KBfNi5Wg_15_4">2,803</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsValuationAllowance" scale="3" id="Tc_KdbtWdLh3Eih7ckgy2hGBg_16_2">1,961</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsValuationAllowance" scale="3" id="Tc_SDV2l2qNiEWlalH6pcOdKQ_16_4">11,365</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net deferred income taxes, net of valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsLiabilitesNet1" sign="-" scale="3" id="Tc_6EWqtZdyy0SxqaFkviu55Q_17_2">20,561</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:DeferredTaxAssetsLiabilitesNet1" sign="-" scale="3" id="Tc_VzN4qmKS8kaJIdHfj-pQVA_17_4">14,168</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#x200B;</span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As at January&#xA0;31, 2022, we have not accrued for foreign withholding taxes and Canadian income taxes applicable to approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UndistributedEarningsOfForeignSubsidiaries" scale="6" id="Narr_TjMVrdfaZk-NSe1BxmCsAQ">573.0</ix:nonFraction> million of unremitted earnings of subsidiaries operating outside of Canada. These earnings, which we consider to be invested indefinitely, will become subject to these taxes if and when they are remitted as dividends or if we sell our stock in the subsidiaries. If we decide to repatriate the foreign earnings, we would need to adjust our income tax provision in the period we determined that the earnings will no longer be indefinitely invested outside Canada.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The provision (recovery) for income taxes varies from the expected provision at the statutory rates for the reasons detailed in the table below:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="Tb_dSC_BEVMgEeDL9be59i0Lg" escape="true"><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:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income before income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"><ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_bsukuzrE0EOd28Yn4Urmiw_3_2">102,610</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_DjBERyjvWkqyb5t0bS48Ig_3_4">70,369</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_srt_StatementScenarioAxis_dsgx_AdjustmentForRoundingMember_p_k977-wkUmegClVDfGXMQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_sUWWRhjZNk-bm4CiZC0Snw_3_6">48,033</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Combined basic Canadian statutory rates</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="Tc_87OCWa8rjkijOmBJiHyGKA_5_2">26.5</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">%&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="Tc_z1_fddfvQ0yDga_WSgOLbQ_5_4">26.5</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="Tc_9TjEh-UDv0qthzluXLU9ig_5_6">26.5</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income tax expense based on the above rates</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" id="Tc_QJSnuaMlr0mvbVcfssr1NQ_7_2">27,192</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" id="Tc_DsFozyfni0uCYrdwQOTyng_7_4">18,648</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" id="Tc_faIGTfH_Ck6JcV4xRuxWhQ_7_6">12,729</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Increase (decrease) in income taxes resulting from:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Permanent differences</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization" scale="3" id="Tc_-h7V_GSCGk2GmROUm-biSg_9_2">3,467</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization" scale="3" id="Tc_1egfCf5B8EqafHn9ZdzHpQ_9_4">875</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization" sign="-" scale="3" id="Tc_TpRSOlLfLUCd-20jJKhlKA_9_6">673</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of differences between Canadian and foreign tax rates</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" sign="-" scale="3" id="Tc_jXREWjNSgkCwf0HOosKqlA_10_2">1,855</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" sign="-" scale="3" id="Tc_7N6fbNpfAkCJbrZ_DQI7nA_10_4">600</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" sign="-" scale="3" id="Tc_DbMHirxONEubyedzFggdYQ_10_6">274</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of rate changes on current year timing differences</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate" sign="-" scale="3" id="Tc_CYokoLuAME6ympPiOHeQMw_11_2">1,085</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate" sign="-" scale="3" id="Tc_DzyEPo2WjUO5MyuG8IwZ0A_11_4">1,063</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate" sign="-" scale="3" id="Tc_yfFtN05lPE6_-m2-Ybw5lQ_11_6">609</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Adjustments relating to previous periods</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes" sign="-" scale="3" id="Tc_FmGwVLkf90CnB_I3WgWPWg_12_2">569</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes" sign="-" scale="3" id="Tc_bMqEWFBgUEK3J0s3pATJZQ_12_4">1,034</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes" scale="3" id="Tc_3NwB9OEMz0qAd_-Won8QaA_12_6">94</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Increase (decrease) in accruals for uncertain tax positions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" sign="-" scale="3" id="Tc_r-nIvFj1MEypo1jgjuY8Hw_13_2">849</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" scale="3" id="Tc_LaDNosnajEid8-Bw2QnqaA_13_4">1,289</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" sign="-" scale="3" id="Tc_R7B7a8K1cEOg3L7TKIyB-w_13_6">1,042</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" sign="-" scale="3" id="Tc_DXdNjKPHdkeVprprjHHSFQ_14_2">9,102</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="3" id="Tc_ioj51ZGY50e49CtUSY4wZA_14_4">254</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="3" id="Tc_-SGz16I190qX7GPtDytkkw_14_6">692</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Stock based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" scale="3" id="Tc_gDy6ymRH5UGjWRZpfDzrKw_15_4">100</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" scale="3" id="Tc_VIGL60voHEyHM8WEgW5AIA_15_6">352</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Other, including foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationOtherAdjustments" sign="-" scale="3" id="Tc_of1QoYPIdU-BIzPRxGBGHQ_16_2">871</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationOtherAdjustments" sign="-" scale="3" id="Tc_42pGaKf58U-lISM22vILTw_16_4">200</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxReconciliationOtherAdjustments" sign="-" scale="3" id="Tc_mDqGyHkObE-ifJFphjecmA_16_6">231</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_3M9OJARvekmD5tFo7p9riA_17_2">16,328</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_nI4sh7qyeEmm-kk7LSYTHQ_17_4">18,269</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_G5ksiYivgUCtEVHVaMQuug_17_6">11,038</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">41</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_7540ab84_a4a8_4e27_98a1_d97340d98f8b"></a><a id="_46c89923_d0af_41e0_9e85_cb59251c1018"></a><a id="_94aa90a6_8cd1_4f40_b8e4_d89cc566a36b"></a><a id="_0c8997c0_f348_4b03_9750_ef58866602a9"></a><a id="_d8f6e057_93f3_46f5_9625_c1b58460ebbb"></a><a id="_28a6422a_d8b4_49b6_ae34_07b0a754dd29"></a><a id="_4ad7fbbc_51d5_4e6f_b741_a30bb26c56ad"></a><a id="_11aa4ff6_b962_413c_940b_b708a42c15bf"></a><a id="_e2ebd9ee_585d_4d42_8ff8_d1410c2645e1"></a><a id="_d0189ffc_ed80_4e52_8c1f_ef3c621193fe"></a><a id="_a234543e_9edb_48f8_ae8e_2e63e2185126"></a><a id="_ac89a5f0_0608_4b8b_87ef_a68860eb909f"></a><a id="_cffde848_4c2c_4c49_9033_9fb317a022d5"></a><a id="_95c73aa0_5366_43a5_a8a0_a55f4be65761"></a><a id="_28b931b6_aa2c_4f49_8e6f_c00c42d9c9c7"></a><a id="Tc_vjPpwV_srUCl6A2-dBmvVg_1_0"></a><a id="Tc_Qv5rylLYckqpuTOxFDYZTw_1_2"></a><a id="Tc_8gSjtY0bR0Gh9_wXPn_aeQ_1_4"></a><a id="Tc_PdpEaHqZl0KfBCQbSnN4jQ_1_6"></a><a id="Tc_vl3syjMb7EmHb3K2RrJslA_1_8"></a><a id="Tc_yU2EB5wTw0yHLW3RtbOEvw_1_10"></a><a id="_ff6f0e1e_d904_4419_b38e_811606148793"></a><a id="Tc_cvTt0zwmrke4GLscvR_A4g_2_0"></a><a id="Tc_sF8fZZQlqkipjRRaFDWHrg_2_2"></a><a id="Tc_aMamZyqE_UuXmFMkonB8SQ_2_4"></a><a id="Tc_GrrsIVfkAk27EgWhFl5Q_Q_2_6"></a><a id="_41c21ab0_3cf4_4049_8a81_48af2d916662"></a><a id="Tc_zCdgfpfY7Uy79LrPxTVPHw_3_0"></a><a id="Tc_k8DylNhZl0WwRcZFh2U0gg_3_2"></a><a id="Tc_KY0cXBSlE0ilsqB7E6IUiQ_3_4"></a><a id="Tc_OQktucgmQ0CKziRj4eiAGw_3_6"></a><a id="_a10b95bf_cceb_4d5c_880c_eba827b49067"></a><a id="Tc_DYSxk-lUoEa14BDgc-686g_4_0"></a><a id="Tc_Xp_Pp3Vmz0OUbhWJTsAjiw_4_2"></a><a id="Tc_KXD8DBMI90qI2Ru8o9l-IA_4_4"></a><a id="_81c3cbc5_807c_4363_b3cd_b4b6ce31af83"></a><a id="Tc_0iwAywQrhUCa-e19BVpyRg_5_0"></a><a id="Tc_M-HH5NMz_UmMxvcHNonmYw_5_2"></a><a id="Tc_Ss1L3VhvB0qIEklIG1RgRA_5_4"></a><a id="Tc_sHj-hGvIF0KTXUh6qr1Hzg_5_6"></a><a id="Tc_V8ECtPiEGkSBiVKY6dTXpw_5_8"></a><a id="Tc_UjUi9qOaYk2TekQyMgVCZw_5_10"></a><a id="_12afd1f9_549b_456a_a5ad_fbdee84c920c"></a><a id="Tc_9s22_Etr50uiNv7_K8YH6A_6_0"></a><a id="Tc_WpVTLDgszkqH1_dIxKsWdg_6_2"></a><a id="Tc_ZKl2sBsFAU2QE6uSolVFMQ_6_6"></a><a id="_b5b38e63_3bb3_4e3e_86c3_bf443eed3b40"></a><a id="Tc_VgZEcxdgjEmzPfFv6TFcQQ_7_0"></a><a id="_5aa85f73_9e6a_4774_a888_401b3918f87d"></a><a id="_ea5a9896_1743_4c96_b539_78703d03b4ac"></a><a id="_c7e860f5_4c7b_4571_aef9_cb0db901f696"></a><a id="_aea9f11d_d077_470d_a2d0_792a50ae6e72"></a><a id="_d055e955_fa45_41e8_8f60_aa8eac9da2ed"></a><a id="_212fcf6f_ddac_4479_84fd_ca6d601c182c"></a><a id="_3d69cf19_92df_483c_81ee_bf681d3aa51e"></a><a id="_dfd7ba68_ecef_4668_abc6_6441fc3ca301"></a><a id="_8af22479_f478_40ad_8244_74c960158c24"></a><a id="_1c263ecd_c8e9_499b_960b_489256d9ee52"></a><a id="Tc_1YwS53U-akiXazFG-5ibaA_1_2"></a><a id="Tc_E4tqP8RaJ0i3tBQX16RfyQ_1_4"></a><a id="_fb5d90d0_1cd5_4ddf_a662_6e88241f5f4e"></a><a id="Tc_UrmU5ppdKUyMClPpvvUMuw_2_2"></a><a id="Tc_CGIjHoNaz0Cov1yFNRlLKg_2_4"></a><a id="_d02f5aa4_1846_4be1_ba1f_a851fe1af900"></a><a id="_040220d3_d88a_4e73_b0a0_b70df56a18b5"></a><a id="_69ea275d_4b63_40f2_8622_1d8ff763be05"></a><a id="Tc_PGJM6M4gvkq5j883lXZaMg_3_0"></a><a id="_56e9646b_6dc3_42b9_958a_078389af206d"></a><a id="Tc_AdFOlqJKrkeqOde0UhMh2A_4_0"></a><a id="_d9ff025c_c04f_4e44_85cf_3dfc37aee870"></a><a id="Tc_vV4exS_QOE2tLpZ6MWcLBw_5_0"></a><a id="_04a6b909_6f02_46b5_bfe9_18e1b619d214"></a><a id="Tc_Pmq3WPrE3kulOB47FnBSuA_6_0"></a><a id="_d90eb2f8_229a_469b_84cf_a466e25e562a"></a><a id="_40abe32c_28e0_412e_989b_5a611596adbe"></a><a id="_4c43299e_4128_4527_aa36_02f8296c49dd"></a><ix:continuation id="Tb_8J0aS8KyWkeghm1zakFT8w_cont2"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We have income tax loss carry forwards which expire as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock" id="Tb_sc6MtzXOFES9T7nnjHca-w" escape="true"><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:37.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Expiry year</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Canada</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">United&#xA0;States</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">EMEA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Asia&#xA0;Pacific</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2022Member_dH2gSqgTFkekaGwqxoz3MA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_vap1o4p47UugWhwEkerWHw_2_8">49</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2022Member_xSYF1Uobk0iMYrDd4Q5_2w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_6seRmXBdCkGQzSOBdEIWeg_2_10">49</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2023Member_pbhmeJTzEEGvgX0QollwRw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_mX7TfeFKuUSVUeeuvTf2Xw_3_8">186</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2023Member_47twzIQX9US1gRAIzK-aUg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_npht3QyBTE2xm5r_TY3KLg_3_10">186</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2024Member_NPDrKNl4d0CiofQn3q182g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc__4WfeWhUVECCYLF0yKr_1g_4_6">40</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2024Member_EP-c_U_ZvkyawADVsUc-Aw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_CRFzTvKp2EOwFmjDI3qTFA_4_8">67</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2024Member_qJ84ak9nB0KUDO_nxMpjtQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_VVhmEffE7Uq3acpnazR4YQ_4_10">107</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_KIBdpwnvzkWsrGEtyLogSw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_pHg5wasEg0ie8ZCyXxYwAg_6_4">417</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_FqALFL32L0-ZVtkRwQLTCw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_zJGkpC7frUOs8BDE79huuQ_6_8">352</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_-7oqMBKAW0Cw45fMmY7o7w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_ePspE4R9bkiLhoqPs4O49Q_6_10">769</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_CanadaRevenueAgencyMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_n3fDUqKHkkqwqyzCEm6tgw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_ID1lfNdLVEOaLok6sK9gvQ_7_2">8,022</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_La9WG1s4XEa-tW_hDzgizA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_cVRnARFnhUqoNOJiSyPvWg_7_4">1,473</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_8D9ltBQutE-KNl9UnONHSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_Uk7hTMDrmUG_NZ_sCjeNRA_7_6">33,054</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_MA7SJdYuj0eFWVuYE8qEnA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_xxzVjm8yOk-rDRaY-z2PlQ_7_8">1,553</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_in4-6PdoB06kzQIw1IwElg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_eVeeMGMlvEq-PCKr8yGH2g_7_10">44,102</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_CanadaRevenueAgencyMember_bTrWatkgXEmVhEZwR06CHQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_GqDF5YXUVU--7bEhEI3GeQ_8_2">8,022</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_8W5hBkpkD06GZ7pYOMklEg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_wHlrSa-6UEGRV-ZY-86CSw_8_4">1,890</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_oqLUw-Rkj0WHJz2YuBuBwQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_ABQEvS74A0itzcbQMzTA-w_8_6">33,094</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_cfQip8AjzkiEGTBypq8DxQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_eorXBjhm-U2Cu5lRpPyheg_8_8">2,207</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLossCarryforwards" scale="3" id="Tc_rBia1fIBa0auC6BhVbCQjQ_8_10">45,213</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following is a tabular reconciliation of the total estimated liability associated with uncertain tax positions taken:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" id="Tb_9HUN_eJLaUuCOfnyAFMzqw" escape="true"><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:69.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Liability, beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" scale="3" id="Tc_Nm8GEdHY4UWqqBFtFyMfxQ_3_2">8,393</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" scale="3" id="Tc_4cQSuSfxhEC0xKe23bb4aQ_3_4">6,650</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Gross increases &#x2013; current period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" id="Tc_NTGbY8Pg1Uq8v4Qm459juQ_4_2">333</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" id="Tc_nhXMsovT-EuDqEbT8y4jOA_4_4">2,502</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Lapsing due to statutes of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" scale="3" id="Tc_7Z6JuuB5kU-i6oymG5xJEw_5_2">1,372</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" scale="3" id="Tc_dcqS5HU6-US2gjqT5ytAAA_5_4">759</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Liability, end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" scale="3" id="Tc_TTNY3VnXnkyWQZMVfT-BUg_6_2">7,354</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" scale="3" id="Tc_xjafrWL64Uu-s6AdT4gOAA_6_4">8,393</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We have identified accruals of <span style="-sec-ix-hidden:Hidden_TB-LMOBP7kaQwfz92D98Eg;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">$7.4</span></span> million with respect to uncertain tax positions as at January&#xA0;31, 2022. It is possible that these accruals for uncertain tax positions will not be required in which case up to $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" scale="6" id="Narr_qy7C410ayECJjxPqfCLvcQ">7.4</ix:nonFraction> million of the recorded liability will decrease the effective tax rate in future&#xA0;years if this liability is reversed. We believe that it is reasonably possible that $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" scale="6" id="Narr_IcxUWcimNECupHSNcPrQ0Q">2.1</ix:nonFraction> million of the uncertain tax positions could decrease tax expense in the next 12&#xA0;months relating primarily to tax&#xA0;years becoming statute barred for purposes of future tax examinations by local taxing jurisdictions.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We recognize accrued interest and penalties related to uncertain tax positions as a current tax expense. As at January&#xA0;31, 2022 and January&#xA0;31, 2021, the unrecognized tax positions have resulted in no material liability for estimated interest and penalties.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Descartes and our subsidiaries file their tax returns as prescribed by the tax laws of the jurisdictions within which they operate. We are no longer subject to income tax examinations by tax authorities in our major tax jurisdictions as follows:</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:66.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:top;width:33.92%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Years No Longer Subject to Audit</b></p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Tax Jurisdiction</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">United States Federal</p></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2019 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Canada</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2017 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">United Kingdom</p></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2019 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Sweden</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2015 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Norway</p></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2020 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Netherlands</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2014 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Belgium</p></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2018 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Germany</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2017 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Switzerland</p></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2016 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Brazil</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2016 and prior</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">42</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_5nQE3_b23k23_O9z9tF-Fg_1_2"></a><a id="Tc_b1ZeH2aUM0a6KWbFBUwlUg_2_0"></a><a id="Tc_YgxMCr6UNk21sBCo7rw7Sw_3_0"></a><a id="Tc_26T8W_B9ckeV9EmD1u0nwQ_4_0"></a><a id="Tc_KLdsFxEd60yfskIHmdbTIg_5_0"></a><a id="Tc_mJHOpiqpjEuweZQBOjD8jg_6_0"></a><a id="Tc_oIeZHmbMzEWUddgqFllzoA_7_0"></a><a id="Tc_mxOgx9peKESGbl3TT8ieRg_8_0"></a><a id="Tc_32MTsywmAUCNwwGD9W7Ptg_9_0"></a><a id="Tc_wzSIPgxxn0e-OviRVI6wqA_10_0"></a><a id="Tc_VaA9_oeWN0KpYqYn9COUhg_11_0"></a><a id="Tc_no_9pMnjGEuVG9nu7J80iA_12_0"></a><a id="Tc_qqzrQ1spyU2-n4WrbCCU_Q_13_0"></a><a id="Tc_VaiuWl8l3Ei1fhLovPPGkQ_14_0"></a><a id="Tc_k_KuJuBQR0GABPWkXr-ZTw_1_2"></a><a id="Tc_jT2UQO8k7UWYRA6j6bEfiw_2_0"></a><a id="Tc_AgCnQoZJUkeP9Nh9s89uUw_3_0"></a><a id="Tc_XJzqSNVtP02bKHH6FWkzIA_4_0"></a><a id="Tc_xcdOozT8TUS5ZS9s6yKc8Q_5_0"></a><a id="Tc_2uE3YEEHoES4ylVTLCNvLA_6_0"></a><a id="Tc_PmFV0TBGR0etyxUPRir_Fg_7_0"></a><a id="Tc_Z1tcDJ9lokSUsEsnS4V_xg_8_0"></a><a id="Tc_VtPG6Xy240uHj4d-OJQrvQ_9_0"></a><a id="Tc_4X4t5_bifEmDYch61IfIeg_10_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="Tb_DoAmh-cD6UKIIjFE9GESMQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;19&#xA0;&#x2013; Contract Balances, Performance Obligations and Contract Costs</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Deferred Revenue</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table presents the changes in the deferred revenue balance as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="Group_08xlwP0NtUWrvBh5uzvZSg" continuedAt="Group_08xlwP0NtUWrvBh5uzvZSg_2" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:75.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:21.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:'Arial','Helvetica','sans-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:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td 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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Deferred&#xA0;Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiability" scale="3" id="Tc__ULeklGSp0OtpQztq7H9QA_2_2">42,063</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Recognition of previously deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" sign="-" scale="3" id="Tc_X4SYX6al1USVWpdiuTwOVw_3_2">37,843</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferral of revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" scale="3" id="Tc_SCA6aeX-6UOSqQs6fTGeaw_4_2">46,386</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases from business combinations, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" scale="3" id="Tc_XinJoG2NK0GrhTQPcF1oNg_5_2">39</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" scale="3" id="Tc_mdFiWOmHrku1imd7Kc1NWg_6_2">646</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiability" scale="3" id="Tc_vwODY6lAjkmkZDGneeVCFw_7_2">51,291</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Recognition of previously deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" sign="-" scale="3" id="Tc_KOIDwkPzvU20XgF6tqOSWg_8_2">38,065</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferral of revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" scale="3" id="Tc_RHsrtTlo_UyTekgSVwwX2Q_9_2">45,234</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases from business combinations, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" scale="3" id="Tc_Ery7ArbGsEabGj-SAea4SQ_10_2">729</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" sign="-" scale="3" id="Tc_ff3e_e3E7UOtLoJ3LiM-Zg_11_2">489</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiability" scale="3" id="Tc_EJTQw91670ysNfU6zV8Njw_12_2">58,700</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="Tc_I5OaAt7UrEmVoIWIhawsHw_13_2">56,780</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Long-term</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueNoncurrent" scale="3" id="Tc_WDVqAUnerEKpikRnvyPv-Q_14_2">1,920</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Performance Obligations</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As of January&#xA0;31, 2022, approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligation" scale="6" id="Narr_pCQ5KkbYU0WGSletecqyzQ">366.8</ix:nonFraction> 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 <ix:nonFraction unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" id="Narr_p-zNrMKyP0ypUiw85joYCw">80</ix:nonFraction>% of these remaining performance obligations over the next <ix:nonNumeric contextRef="As_Of_1_31_2022_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20240131_K7bJRvcCaUaOJCsKzIRyQA" format="ixt-sec:durwordsen" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="Narr_xfT_vVkynU2bBxB3UpdajA">24&#xA0;months</ix:nonNumeric> with the balance recognized thereafter.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Contract Assets</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table presents the changes in the contract assets balance as follows:</p><ix:continuation id="Group_08xlwP0NtUWrvBh5uzvZSg_2"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:78.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:18.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:'Arial','Helvetica','sans-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:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contract&#xA0;Assets</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNet" scale="3" id="Tc_QQq9hPdhyUSuoLr5lb1g9w_2_2">1,107</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Transfers to trade receivables from contract assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetReclassifiedToReceivable" scale="3" id="Tc_xytleG9N_kqaD2k_6Kqg7w_3_2">563</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" scale="3" id="Tc_5nvpbF1dX0CIzmhVD9dCSw_4_2">783</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" scale="3" id="Tc_-0_bB2gcLk6yeHb8L2mNBQ_5_2">26</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNet" scale="3" id="Tc_4GeUBMf-002_DIy7ZBHYTg_6_2">1,353</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Transfers to trade receivables from contract assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetReclassifiedToReceivable" scale="3" id="Tc_qw5o1Zrig0yNofyEgtLGgA_7_2">730</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" scale="3" id="Tc_w1D_Gvj9sUaEQhMRT_f2qA_8_2">815</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" scale="3" id="Tc__sfOW5guX0-Fo65Te_dJJA_9_2">5</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNet" scale="3" id="Tc_pVYevnsNbEia0M3Kg1AucQ_10_2">1,443</ix:nonFraction></b></p></td></tr></table></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Contract Costs</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Capitalized contract costs net of accumulated amortization is $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostNet" scale="6" id="Narr_UFMyNbHmC06QxlM70-959g">16.6</ix:nonFraction> million at January&#xA0;31, 2022 ($<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostNet" scale="6" id="Narr_Q9Skr58ggUSZkh85czET-w">12.9</ix:nonFraction> million at January&#xA0;31, 2021). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates. The total contract cost amortization included in sales and marketing expenses was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostAmortization" scale="6" id="Narr_PPKvco5dQEi1EB8wjd7fNg">4.7</ix:nonFraction> million, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostAmortization" scale="6" id="Narr_7FvGPCeKEUG5ra4-ZzCA6w">3.3</ix:nonFraction> million and $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostAmortization" scale="6" id="Narr_-d3CIi9FJ0-QBHlNguuLlg">2.5</ix:nonFraction> million for the&#xA0;years ended January&#xA0;31, 2022, 2021 and 2020, respectively.</p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock" id="Tb_nqosLCv5X0a7N5T1hrncMA" continuedAt="Tb_nqosLCv5X0a7N5T1hrncMA_cont1" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;20&#xA0;- Other Charges</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 </p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">43</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_0-BXuTlK30ikWAxuFa2bGQ_1_0"></a><a id="Tc_0IWpEij0-Ua1Xc9F4KeRdw_1_2"></a><a id="Tc_rmVzl8X7K0KzaplG9C565A_1_4"></a><a id="Tc_moy9qNxHRUK49zivL27eUQ_1_6"></a><a id="Tc_UCYa7_q5o0eCsMXbGEJ1Eg_2_2"></a><a id="Tc_W0tL1Z9OvkWoVp5D8qo6wA_2_4"></a><a id="Tc_H7Lq24OS7kqZS7n_8S5Ckw_2_6"></a><a id="Tc_B-z4tVEqpU2t2Sjpty1NBA_3_0"></a><a id="Tc_JSZPmvXUIU6DT1weR2PY5Q_4_0"></a><a id="Tc_VajtszhsLUefY4Yq7UhtlA_5_0"></a><a id="Tc_WEHcnNDWBEGZC4NHviGHQA_5_6"></a><a id="Tc_GSMsLp4dNUCOFe7BrCstJw_1_2"></a><a id="Tc_re9aIgx41ky0KvO_BpiSdw_2_2"></a><a id="Tc_2uESJyIFV0CTPiBtLh-qQQ_2_4"></a><a id="Tc_0ySORLT4LkWIAuH0uxzwSA_2_6"></a><a id="Tc_X0HaCVbtp0W6Yqal09iB9A_3_0"></a><a id="Tc_-9pbUenTQ0mrP22kk970Cw_3_2"></a><a id="Tc_5sKymV-V8kmvqPFHggo4Iw_3_4"></a><a id="Tc_T0loIwLCckG6F0mBcDFegA_3_6"></a><a id="Tc_oLkbXpcM40STevtYOg8VWg_4_0"></a><a id="Tc_OwlxDj7gtkarBgJ1OpMnPg_5_0"></a><a id="Tc_E5a2OAvRJ0e92Popzxmwxw_6_0"></a><a id="Tc_GBDRjDg_uE2lM6wwpvcCIw_6_4"></a><a id="Tc_gCoBWI2sg02CyvRxkjshDQ_7_0"></a><a id="Tc_tvH1LemW3EW7DTsyV_9ZWA_7_4"></a><a id="Tc_cGTOZACHSUCAIBPUnarcdg_8_0"></a><a id="Tc_7DULmNL0Jke89ywKmTahFA_9_0"></a><a id="Tc_mW-05L57cUWOfHa9CGRiHQ_10_0"></a><a id="Tc_eWCxl1YbCEqY6_BX7GHoeQ_10_2"></a><a id="Tc_Km4dWMIH7kmsMSPGzhSWDg_10_4"></a><a id="Tc_Hc8xDT_XvkmgsmIKy4vbfQ_10_6"></a><ix:continuation id="Tb_nqosLCv5X0a7N5T1hrncMA_cont1"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following tables shows the components of other charges as follows:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" id="Tb_lRD5IYrO7EyusXST_u7a7w" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Acquisition-related costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="3" id="Tc_oeIyNg_WkkW340xfFnP7kA_3_2">1,904</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="3" id="Tc_K8BJZoF2s0O8YwxbOAeniw_3_4">1,981</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="3" id="Tc_XUF2Q5O4E0a6PSWUEgUZaA_3_6">3,457</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Contingent consideration adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_anXbaIIx4EKw2tSH0ie7Cw_4_2">4,458</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" sign="-" scale="3" id="Tc_5lv6jI0xv0iVSGP8xNGbyw_4_4">1,946</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_xkE7rECoAUOD6sfuxLuRng_4_6">340</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Restructuring plans</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="Tc_3hnoQayllEa6AYAfIPBEag_5_2">66</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="Tc_CMOzcZ2YNkm6gI3_xjvjfQ_5_4">2,300</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#x2014;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingExpense" scale="3" id="Tc_GYmntnt_0k6oyvTnG7--2A_6_2">6,428</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingExpense" scale="3" id="Tc_UV7IcQDcGUWmYlWojGcryw_6_4">2,335</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNonoperatingExpense" scale="3" id="Tc_UfPtFdfu60e009DAMle6hQ_6_6">3,797</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Fiscal 2021 Restructuring Plan</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In the second quarter of fiscal 2021, management approved and began to implement a restructuring plan (the &#x201C;Fiscal 2021 Restructuring Plan&#x201D;) to reduce operating expenses. To date, $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_5_1_2020_To_7_31_2020_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2021RestructuringPlanMember_uwsr5UeuT0mJDmP5YmRbvw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="6" id="Narr_2N9SORXiKkuUCxKIfeetZg">2.4</ix:nonFraction> million has been recorded within other charges in conjunction with this restructuring plan. These charges are comprised of workforce reduction and the accelerated ROU asset amortization associated with certain office closures. This plan is substantially complete with a nominal amount of future expected office closure costs.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table shows the changes in the restructuring provision for the Fiscal 2021 Restructuring Plan:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock" id="Tb_eK4wn-Z7zUKC7qZFXw6VEg" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Workforce</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;Reduction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Office&#xA0;Closures</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accruals and adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_o2zoEyp7oE2CHwT3-ufIYQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveAccrualAdjustment1" scale="3" id="Tc_ac6znu2ay0uZhPaeDpaW6Q_4_2">1,717</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_FeZTDz1knEOIm6s3NcMHSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveAccrualAdjustment1" scale="3" id="Tc__WwYlVI2vk2qfUXQhN6T6w_4_4">583</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveAccrualAdjustment1" scale="3" id="Tc_KRd0KY0xRkGlWjoc5BLn2Q_4_6">2,300</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash draw downs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_o2zoEyp7oE2CHwT3-ufIYQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="Tc_jQuvWMCv-0O47R5OT9Q6kw_5_2">1,657</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_FeZTDz1knEOIm6s3NcMHSQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="Tc_zw8yLcHxGUCITMGmbBZhmQ_5_4">583</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="Tc_K1acWlWWRE-vYx0eO62TXg_5_6">2,240</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_o2zoEyp7oE2CHwT3-ufIYQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveTranslationAdjustment" sign="-" scale="3" id="Tc_0IQeX8bEH0K-mKqHW01TXQ_6_2">10</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveTranslationAdjustment" sign="-" scale="3" id="Tc_3SCajR8XekOJOpX2ptZSLQ_6_6">10</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_zb8-b27fxEOqONHKWF7GSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserve" scale="3" id="Tc_jeX9_8c_kEaUIvWqQOaGNQ_7_2">70</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#x2014;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserve" scale="3" id="Tc_tUbocdYFZEqJSwjWI_Ajww_7_6">70</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accruals and adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_sDHuZnahDkGFo4n3vcYPFg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveAccrualAdjustment1" scale="3" id="Tc_jqJ8J-HlcU2QZajiCsFZ0Q_8_2">2</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_l1xtGup8hUiSmVvpkwVeVA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveAccrualAdjustment1" scale="3" id="Tc_8gqhc1dPp02VzpAz9Lcudg_8_4">64</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveAccrualAdjustment1" scale="3" id="Tc_NO68-gwVJ0WCHj_bJ3bVPQ_8_6">66</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash draw downs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_sDHuZnahDkGFo4n3vcYPFg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="Tc_ZPYbbMzAg0OkN0Kbb-r1tQ_9_2">72</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_l1xtGup8hUiSmVvpkwVeVA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="Tc_WcdjlP5muUGdpHCc4pMV7w_9_4">64</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="Tc_I7N4y8SPWEKavdcYwKjY8w_9_6">136</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#x2014;</b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:continuation><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_JcwLsCZfsU2UTLFqtliUuw_1_0"></a><a id="Tc_yqgEZN_iZECKear3dqUUiw_1_2"></a><a id="Tc_RaIav9-IYkKnnaBdNxbZRA_1_4"></a><a id="Tc_oBWujaZSo066Q6gpjKMonQ_1_6"></a><a id="Tc_K8xWLjksFEyRVDyH5PUOeA_2_2"></a><a id="Tc_eHmslVbeh0aEY9FRll5WIg_2_4"></a><a id="Tc_C_Ae4ZgMpk-TiV0qi23hoQ_2_6"></a><a id="Tc_p-xHyhPY0kqmECWojAvZ9g_3_0"></a><a id="Tc_innQmrzH1Eue3Qez2mpWMQ_4_0"></a><a id="Tc_O25bbpoNGk2yCSMrcwuuNQ_5_0"></a><a id="Tc_dY8YsnM0602yOnPTZ5-tiQ_6_0"></a><a id="Tc_SAkWNBf_VUGbKTBqkgg76Q_7_0"></a><a id="Tc_xOpxBskV9EqpsMtwlB7klA_8_0"></a><a id="Tc_Yl0HskxoI0-48T2m315ebg_9_0"></a><a id="Tc_hy7UwEec0EiIdC8LQ2NQNg_10_0"></a><a id="Tc_njKSWJmBe0WAXB1PsV6Tjg_11_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:CashFlowSupplementalDisclosuresTextBlock" id="Tb_RE2T2__ee0SWVolQfJOinQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;21&#xA0;&#x2013; Supplemental Cash Flow Information</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following tables presents the cash flow changes in operating asset and liabilities:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" id="Tb_N1dtE6k-_0yQHtyTfzuEuQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Trade accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" scale="3" id="Tc_KYXDpjltnEeef71XQCCZ9g_3_2">2,884</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" sign="-" scale="3" id="Tc_FQLBw4XFSE-PwzjOvh11cQ_3_4">143</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" sign="-" scale="3" id="Tc_c3h4dB2w6EKlf-u4o3PF8A_3_6">3,733</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherReceivables" sign="-" scale="3" id="Tc_4DasN_oHl06JyGvYq3IZsw_4_2">2,042</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherReceivables" scale="3" id="Tc_4SeCLCJ7e0qhhCpO6c8YoA_4_4">7,098</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherReceivables" scale="3" id="Tc_P0a9IgrEE0iJmgzNUf0RbQ_4_6">2,547</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Prepaid expenses and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_WVu255f0h0OfbTbseeJc_g_5_2">8,276</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_F_RDSPlplUOuTGeQSR0OQg_5_4">5,029</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_Zwn90tLNwUWYnCs2QxOP9g_5_6">5,942</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Inventory</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="Tc__5-kxb0SOE-xYEFMJ9Ibyw_6_2">498</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" sign="-" scale="3" id="Tc_7QcgPQzN7Eq50bVkLf9rgA_6_4">99</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="Tc_hHgCJ8tqfUKs0sM1W0XD6Q_6_6">345</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" id="Tc_s_5TnSQJdEKQDC3ITe0bPw_7_2">2,336</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayable" sign="-" scale="3" id="Tc_mw_DELCJ20mkUl-x_p3WXA_7_4">686</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" id="Tc_aKdsQ3Irsk6_OzrqMBDXeg_7_6">1,768</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" scale="3" id="Tc_EPEevvXZF0Glu_czcJaggg_8_2">13,760</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" sign="-" scale="3" id="Tc_ueitHLnPy0qOeEeYZUKanA_8_4">999</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" scale="3" id="Tc_A9QInboARU-3qHZ2h9HnMA_8_6">3,265</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income taxes payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInIncomeTaxes" scale="3" id="Tc_yJcOicpb-0GEN-6WVJiWMQ_9_2">426</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInIncomeTaxes" scale="3" id="Tc_gRX8y-eQOEijdesGcvamuA_9_4">3,835</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInIncomeTaxes" sign="-" scale="3" id="Tc_HeQUCVjNqEaIcrPMrKV7FQ_9_6">1,550</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:IncreaseDecreaseInOperatingLeaseLiabilities" sign="-" scale="3" id="Tc_dZK2phUEEEuYv5pLEnG2Sw_10_2">259</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:IncreaseDecreaseInOperatingLeaseLiabilities" scale="3" id="Tc_FJONZRnmVUmMaXE4CscgOg_10_4">283</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="dsgx:IncreaseDecreaseInOperatingLeaseLiabilities" scale="3" id="Tc_VKDhAGKlZUOJ0WyFMpNzkQ_10_6">546</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" scale="3" id="Tc_GhtN8wdC-0i7j3cEdEXwsg_11_2">6,142</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" scale="3" id="Tc_qUT8SULW4U-IlTnURYIIJw_11_4">5,877</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" sign="-" scale="3" id="Tc_dMQC0Cmfq02YQxpc4GnIYA_11_6">4,184</ix:nonFraction>)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_qPyCRjbFPESDMf-NX_u1Bg_12_2">12,789</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" scale="3" id="Tc_o3puUYICnkqkI7ZPc6dkuw_12_4">3,575</ix:nonFraction>)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" scale="3" id="Tc_pJnjsCtCdUa6NkN70ZbXHw_12_6">5,256</ix:nonFraction>)</p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">44</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_74930d2d_2892_437a_8055_5932d0f577c7"></a><a id="Tc_5ZDIYa7ABEqMMx4_D6IXAQ_1_0"></a><a id="Tc_Amrsel0lCk2_t18eGs78yQ_1_2"></a><a id="Tc_H8_jOfi03ES91HGNevtK7Q_1_4"></a><a id="Tc_YaoTCFkD1EGv-2G_HVPsxw_1_6"></a><a id="Tc_6YaRXZJlJEirlIQr0JQlsA_2_2"></a><a id="Tc_7pcw9P4fJE2RdwJU0V8hTA_2_4"></a><a id="Tc_0b8mkmjJjU6R0cOzLAStbw_2_6"></a><a id="Tc_pvpqBATgiUa43eRiJFgBqg_3_0"></a><a id="Tc_PzPKbA3RVkSIxZRMadT1_g_4_0"></a><a id="Tc_NGYfaR9Q9EyI-z4jd3-n7Q_5_0"></a><a id="Tc_4oROnOmPjUuVyIqNLw3ixA_6_0"></a><a id="Tc_8Ms5U1AtN0aUpd13BH58qw_7_0"></a><a id="_7f7e2295_231b_49a6_8b0b_82d7f4545c6e"></a><a id="Tc_0nUQj4JE2ke8TkfqJ9cDHA_1_0"></a><a id="Tc_aOiYm_oV70yZxTp2oS5YCw_1_2"></a><a id="Tc_QJU9_A6BsUG0M_C3GS64ew_1_4"></a><a id="Tc_gYDJBEmVY0eEzF2uueS7zQ_1_6"></a><a id="Tc_VEDuuF6INUiZwWGNCpB58A_2_2"></a><a id="Tc_CH-QCyMdnEmxdoXFKBce1w_2_4"></a><a id="Tc_qkbhifc-uUekxbCEv96BBA_2_6"></a><a id="Tc_lUnY6DsZgEWjX6U4Je1xTw_3_0"></a><a id="Tc_bZ0sqO65oUe8lpeX3awymw_4_0"></a><a id="Tc_61g7MMYqDkGasf1_ieXnUQ_5_0"></a><a id="Tc_EorD6G2LGEeDKYKXUvJSrQ_6_0"></a><a id="Tc_S3NQmSwcQUuDrQtCvQyyuw_1_2"></a><a id="Tc_FczDPXqBTUefhszT3HUi3w_1_4"></a><a id="Tc_U-42efIdYky6d1TYV1qb1g_2_2"></a><a id="Tc_4naV6HZbek2Ubo0-prpY5w_2_4"></a><a id="Tc_zLAM7iX4JEqnbY-Y98Lgvw_3_0"></a><a id="Tc_4J_pgJvNqEqEPIygbfT-tQ_4_0"></a><a id="Tc_bNCCm7qSf0yZEJG1o1izIA_5_0"></a><a id="Tc_yKTXyExiiUazW-wCei5XfA_6_0"></a><a id="Tc_8oRk5_8knUi7uFHFydlx_g_7_0"></a><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:SegmentReportingDisclosureTextBlock" id="Tb_mL_EYzQveUGRpiRjBiBndA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;22&#xA0;- Segmented Information</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 <ix:nonFraction unitRef="Unit_Standard_segment_KK23ak5saEO7Bet-BMU5GQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="0" format="ixt-sec:numwordsen" name="us-gaap:NumberOfReportableSegments" scale="0" id="Narr_dj4InWiKrU2UJOsCbrl62Q">one</ix:nonFraction> reportable business segment providing logistics technology solutions. The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" id="Tb_2gSustHcUkq3G0iozer0MQ" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_country_US_VbxbVoj3b06INSbM_Y5HeQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_U5IbSj-D0UGODSUJq9eFpw_4_2">242,086</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_country_US_FJqnonP8lkyEfzDqioCdqQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_9YTDVJE8Y0egIyEDIgMCVg_4_4">211,232</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_country_US_fFiFF8jOfkKgXgvDCb1jnw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_7q59LNtX1Ua0NEqquEDKEQ_4_6">202,814</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Europe, Middle-East and Africa</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_kgEa_faQEEaf9O0kgi3l8A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_HkPdhvaFE0mfGUmizoGb1Q_5_2">128,990</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_K-5exWnX8E-v55CULfOfLg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_nHUIN6hFyUqteaX0Ex_mkQ_5_4">94,163</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_us-gaap_EMEAMember_mXxsr2nHD0KxZ_H5QJd88w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_G0upJSvgtEWVl1FZDrL9ZA_5_6">82,596</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_country_CA_VkQUR2kSEEmJnna-3JFEaQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_E4LpwsTgkEuCaD8kLiBowA_6_2">36,116</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_country_CA_UjmB8NPywk6FmXwRFCgl9A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_P_K9jKeTWUuJAQDtPGKeiQ_6_4">29,388</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_country_CA_x69LzXeWOk-JuVkVxesPuw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_Jw_dAUe17k-2O9fMt_zocQ_6_6">27,304</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Asia Pacific</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_255iORS_60mUVBtHlLU-CA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_u31OrRdlsU28gH2rHB9JzA_7_2">17,498</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_s19lreQFN0G4CHA8kcRBPw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_iGDtqP574ESwfYTOgj8IQg_7_4">13,881</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_srt_AsiaPacificMember_MV9UcAsif0a_xzDnffJPrQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_7gw3rHG-OUi8HrVuAGL13A_7_6">13,077</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_4RADF1pNAkOHvHJQXfO63w_8_2">424,690</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_K2qnZHEL5UKHOf5rwCPVoQ_8_4">348,664</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_N763nLzI-Uuk-DFbDs3OHA_8_6">325,791</ix:nonFraction></p></td></tr></table><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock" id="Tb_b3LJslJap0WPl9QcFznUPg" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></ix:nonNumeric></ix:nonNumeric><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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#xA0;&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">License</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_TnVIMvcpNkClOMdi4uSnGg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_4DYIszrAKUKOF5PX59wTsQ_4_2">5,060</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_w06w9bHzm0q81XG4qJWEZw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_XmLrzq7n3kuPJRH8wFQt4A_4_4">5,054</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_us-gaap_LicenseMember_-toxsNCiIUSMlF-mLvRISA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_gxPIv5z9mUCziTa6f6BB8Q_4_6">7,582</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BSaZuJ8iV0GnzVZKjRCLhg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc__GeElKmw-ECxjR546AEhgg_5_2">378,494</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_6htMCidMNU-SCNpKrlv23Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_BEqV6QJevUi33J0KJkV_dg_5_4">309,731</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BPP9D5WlIEq4YeDnVnZ0lw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_UCZyw3ZY20eQay_8aKUjzQ_5_6">284,654</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Professional services and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_UQUY5v6DW0iqCVCBqwRomQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_vGpeB5qOzk2SLjy4Dr3wlA_6_2">41,136</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_vTMkvCp1IE6fngyGxWx_1Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_e9bQ97nuWkezkxoKvINKdA_6_4">33,879</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember__m-sOO5qIUeZ_06HupfX0g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_QinEGUIXwkSbOsIOtzP5tQ_6_6">33,555</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_Id9qVKEodEqg_DISVeSKHA_7_2">424,690</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_NqwkSCd1r0Wx2mTuvusslw_7_4">348,664</ix:nonFraction></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_aKQBomi6j0Wy4uqmtDD2UQ_7_6">325,791</ix:nonFraction></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" id="Tb_WtFh4AyKm0qEmquHZOlMJw" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#xA0;31,&#xA0;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total long-lived assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_US_FcXQBM-8kkCcoJ-ZFGX4-A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_d32po2rAB0qMcELPPoDWVQ_4_2">102,649</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_srt_StatementGeographicalAxis_country_US_uENRYDC8qUu5zkQ-ErjPaQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_AXcy9lkqUU-kE303x4ueGw_4_4">92,442</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Europe, Middle-East and Africa</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_nwDerRE9r0e6p4gjDGggYg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_h2RulvIhR0uZaSLHCG1lng_5_2">43,922</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_bEDa6AzDgUuoUnj9f094CA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_pXI0T2UQaUOs-3NJnFnAOA_5_4">39,769</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_CA_zVSpNieKykqfgPNhmnCX9g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_RXQtF22WSUKd3qBdGJXpdQ_6_2">84,943</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_srt_StatementGeographicalAxis_country_CA_WJM5zVB3HEGEGtna5KPVRg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_bWVTxwp5B0SCxlUfQSxVww_6_4">107,472</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Asia Pacific</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_gXjw1liBHESrg_jt9hHuxA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_veUu_1Ukt0C34D4k-bF25w_7_2">8,912</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_4Pd12t1mQE2IfF6lO85jSw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_kLKHmKHPykKmhSw2I9Zv0g_7_4">12,398</ix:nonFraction></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_GTU-bEG2kkyykIOiUxMhPw_8_2">240,426</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#xA0;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> <ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_axTj6YJvEEOjFFX9Pxdp7w_8_4">252,081</ix:nonFraction></p></td></tr></table></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg" name="us-gaap:SubsequentEventsTextBlock" id="Tb__q8n5WjOsU2Fv4NqmKkmFA" escape="true"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#xA0;23&#xA0;&#x2013; Subsequent Event</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On February&#xA0;9, 2022, Descartes acquired all of the shares of NetCHB, LLC, a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_R2B2bfsFSUCWd9P9iuu-Sg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_Pi3mVmJBVUeTwgAQrQXfoQ">38.7</ix:nonFraction> million, net of cash acquired, which was funded from cash on hand plus potential performance-based consideration of up to $<ix:nonFraction unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ" contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_3QFf5n1hKEaU_I-jPBavcw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_BFGzvlgRT0GU8ibV0xi4Ug">60.0</ix:nonFraction> million based on NetCHB achieving revenue-based targets over the first two&#xA0;years post-acquisition. As of the issue date of these consolidated financial statements, the fair value of the acquired assets and liabilities has not been determined.</p></ix:nonNumeric><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">45</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;padding-top:1pt;text-align:justify;border-top:1px solid #000000;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="_e3f37c68_8b9d_4c12_b534_2a8aa2c11439"></a><a id="CorporateInformation"></a><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;">CORPORATE INFORMATION</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;padding-bottom:1pt;border-bottom:1px solid #000000;margin:0pt 0pt 12pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Stock Exchange Information</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our common stock trades on the Toronto Stock Exchange under the symbol DSG and on The Nasdaq Stock Market under the symbol DSGX.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Transfer Agents</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: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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-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:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Computershare Investor Services Inc.</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Computershare Trust Company</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">100 University Avenue</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">12039 West Alameda Parkway</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Toronto, Ontario M5J 2Y1</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Suite Z-2 Lakewood, Colorado</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">North America: (800) 663-9097</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">80228 USA</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Phone: (416) 263-9200</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Phone: (303) 262-0600</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Independent Registered Public Accounting Firm</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">KPMG LLP</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Bay Adelaide Centre</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">333 Bay Street</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Suite 4600</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Toronto, Ontario M5H 2S5</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Phone: (416) 777-8500</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Investor Inquiries</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr><td style="vertical-align:bottom;width:50.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Investor Relations</p></td><td style="vertical-align:bottom;width:49.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">The Descartes Systems Group Inc.</p></td><td style="vertical-align:bottom;width:49.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">120 Randall Drive</p></td><td style="vertical-align:bottom;width:49.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Waterloo, Ontario N2V 1C6</p></td><td style="vertical-align:bottom;width:49.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Phone: (519) 746-8110 ext. 202358</p></td><td style="vertical-align:bottom;width:49.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Toll Free: (800) 419-8495</p></td><td style="vertical-align:bottom;width:49.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">E-mail: investor@descartes.com</p></td><td style="vertical-align:bottom;width:49.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">www.descartes.com</p></td><td style="vertical-align:bottom;width:49.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">The Descartes Systems Group&#xA0;Inc.</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:6.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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;width:44.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;width:48.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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td colspan="2" style="vertical-align:bottom;width:51.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Corporate Headquarters</p></td><td style="vertical-align:bottom;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td colspan="2" style="vertical-align:bottom;width:51.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">120 Randall Drive</p></td><td style="vertical-align:bottom;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td colspan="2" style="vertical-align:bottom;width:51.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Waterloo, Ontario N2V 1C6</p></td><td style="vertical-align:bottom;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td colspan="2" style="vertical-align:bottom;width:51.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Canada</p></td><td style="vertical-align:bottom;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:6.56%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Phone: </p></td><td style="vertical-align:bottom;width:44.63%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">(519) 746-8110</p></td><td style="vertical-align:bottom;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:6.56%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left:0pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;width:44.63%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">(800) 419-8495</p></td><td style="vertical-align:bottom;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:6.56%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Fax:</p></td><td style="vertical-align:bottom;width:44.63%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">(519) 747-0082</p></td><td style="vertical-align:bottom;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td colspan="2" style="vertical-align:bottom;width:51.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">info@descartes.com</p></td><td style="vertical-align:bottom;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td colspan="2" style="vertical-align:bottom;width:51.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">www.descartes.com</p></td><td style="vertical-align:bottom;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">46</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.55pt;min-height:14.45pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Times New Roman','Times','serif';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Times New Roman','Times','serif';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;max-width:100%;position:relative;min-height:57pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><img src="dsgx-20220131xex99d2009.jpg" alt="DescartesLOGO_Black.jpg" style="display:inline-block;height:57pt;left:0.28%;padding-bottom:0pt;position:relative;top:0pt;width:284.14pt;" /></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;">47</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.3
<SEQUENCE>4
<FILENAME>dsgx-20220131xex99d3.htm
<DESCRIPTION>EXHIBIT-99.3
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.14.0.96--><!--Created on: 4/14/2022 05:57:32 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:right;margin:0pt 0pt 12pt 0pt;"><b style="font-size:9.5pt;font-weight:bold;">Exhibit 99.3</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 0pt 0pt;"><b style="font-size:11pt;font-weight:bold;">MANAGEMENT</b><b style="font-family:'Verdana';font-size:11pt;font-weight:bold;">&#8217;</b><b style="font-size:11pt;font-weight:bold;">S DISCUSSION AND ANALYSIS OF </b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">FINANCIAL CONDITION AND RESULTS OF </b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">OPERATIONS</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Our Management</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">s Discussion and Analysis of Financial Condition and Results of Operations (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">MD&amp;A</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) contains references to Descartes using the words </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">we,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">us,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">our</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> and similar words and the reader is referred to using the words </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">you,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">your</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> and similar words.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">This MD&amp;A also refers to our fiscal years. Our fiscal year commences on February 1</font><sup style="font-size:7.12pt;vertical-align:top;">st</sup><font style="font-size:9.5pt;"> of each year and ends on January 31</font><sup style="font-size:7.12pt;vertical-align:top;">st</sup><font style="font-size:9.5pt;"> of the following year. Our fiscal year that we are reporting on in this MD&amp;A, which ended on January 31, 2022, is referred to as the </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">current fiscal year,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">fiscal 2022,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">2022</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> or using similar words. Our previous fiscal year, which ended on January 31, 2021, is referred to as the </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">previous fiscal year,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">fiscal 2021,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">2021</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, 2023 refers to the annual period ending January 31, 2023 and the </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">fourth quarter of 2023</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> refers to the quarter ending January 31, 2023.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">This MD&amp;A, which is prepared as of March 2, 2022, covers our year ended January 31, 2022, as compared to years ended January 31, 2021 and 2020. You should read the MD&amp;A in conjunction with our audited consolidated financial statements for 2022 that appear elsewhere in this Annual Report to Shareholders.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We prepare and file our consolidated financial statements and MD&amp;A in United States (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">US</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) dollars and in accordance with US generally accepted accounting principles (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">GAAP</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">). All dollar amounts we use in the MD&amp;A are in US currency, unless we indicate otherwise.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We have prepared the MD&amp;A with reference to the Form 51-102F1 MD&amp;A disclosure requirements established under National Instrument 51-102 </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Continuous Disclosure Obligations</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">NI 51-102</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) of the Canadian Securities Administrators.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">As of the date of this MD&amp;A, the conflict between Russia and the Ukraine (the </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Ukraine Conflict</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) 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 the Ukraine, the recent escalation in conflict between the countries could impact economic and trade activity across Europe and perhaps worldwide as trade lanes and supply chains are impacted. Russia is a major supplier of oil and gas to numerous countries and a 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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 </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Pandemic</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">). 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 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</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 many cases, have seen increased volumes as a result of the Pandemic.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">essential service</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">Certain statements made in this Annual Report to Shareholders, constitute forward-looking information for the purposes of applicable securities laws (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">forward-looking statements</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">), including, but not limited to: statements in the </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Trends / Business Outlook</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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; our liability with respect to various claims and suits arising in the ordinary course; any commitments referred to in the </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Commitments, Contingencies and Guarantees</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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; 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 </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">believe,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">plan,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">expect,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">anticipate,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">intend,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">continue,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">may,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">will,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">should</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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&#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; </font><font style="font-size:9.5pt;">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 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; </font><font style="font-size:9.5pt;">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; our ability to develop solutions that keep pace with the continuing changes in technology, and our continued compliance with third party intellectual</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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.</font><font style="font-family:'Verdana';font-size:9.5pt;">&#160;</font><font style="font-size:9.5pt;">Such factors include, but are not limited to, the factors discussed under the heading </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><b style="font-size:9.5pt;font-weight:bold;">Certain Factors That May Affect Future Results</b><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">OVERVIEW</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">SaaS</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The Pandemic continues to have an impact on global trade. Since the start of the Pandemic in March 2020, we have observed </font><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">t know what the impact of these events will be on overall global trade volumes and the use of Descartes</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> products and services by its customers and whether an impact will only be temporary or may continue for 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">The Market</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Logistics is the management of the flow of resources between a point of origin and a point of destination </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> global supply chains and a lack of standardized business processes.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The rise of e-commerce 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 updates on delivery status, adding considerable burden to supply chain management as process efficiency is balanced with affordable service.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">In this market, the movement and sharing of data between parties involved in the logistics process is</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">As the market continues to change, we have been evolving to meet our customers</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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 (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">GLN</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) 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 </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 customers improve their sourcing, landed cost, and transportation lane and provider selection processes.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Solutions</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Descartes</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">s multimodal logistics community to enable companies to quickly and cost-effectively connect and collaborate.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Descartes</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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 </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">low tech</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> partners to act and respond with </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">high tech</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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</font></p><p style="display:none;line-height:0pt;margin:0pt;"><font style="font-family:'Arial','Helvetica','sans-serif';font-size:0pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">customers differentiate themselves from their competitors.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">Descartes</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> Logistics Application Suite offers a wide array of modular, cloud-based, interoperable web and wireless logistics management applications. These solutions embody Descartes</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> deep domain expertise, not merely </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">check box</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> comprehensive suite of solutions includes:</font></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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Routing, Mobile and Telematics;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Transportation Management and e-commerce enablement;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Customs &amp; Regulatory Compliance;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Trade Data;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Global Logistics Network Services; and</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Broker &amp; Forwarder Enterprise Systems.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> solutions are designed to deliver functionality that can enhance a logistics operation</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">s performance and productivity both within the organization and across a complex network of partners.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Descartes</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> expanding global trade content offering unites systems and people with trade information to enable organizations to work smarter by making more informed supply chain and logistics decisions. Our content 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Descartes</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Sales and Distribution</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 place of face-to-face meetings and in person trade show events.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">United by Design</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Descartes</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8216;</font><font style="font-size:9.5pt;">United By Design</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> strategic alliance program is intended to ensure complementary hardware, software and network offerings are interoperable with Descartes</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> solutions and work together seamlessly to solve multi-party business problems.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-family:'Verdana';font-size:9.5pt;">&#8216;</font><font style="font-size:9.5pt;">United By Design</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> Open Standard Collaborative Interfaces, which provide a wide variety of connectivity mechanisms to integrate a broad spectrum of applications and services.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">Descartes has partnering relationships with multiple parties across the following three categories:</font></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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Technology Partners </font><font style="font-family:'Symbol';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> Complementary hardware, software, network, and embedded technology providers that extend the functional breadth of Descartes</font><font style="font-family:'Symbol';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> solution capabilities;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Symbol';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> solutions; and</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Channel Partners (Value-Added Resellers) </font><font style="font-family:'Symbol';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> Organizations that market, sell, implement and support Descartes&#39; solutions to extend access and expand market share into territories and markets where Descartes might not have a focused direct sales presence.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Marketing</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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, 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 to what extent.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Fiscal 2022 and 2023 Highlights</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">On February 26, 2021, Descartes acquired all of the shares of VitaDex Solutions, LLC, doing business as QuestaWeb (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">QuestaWeb</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">), a US-based provider of foreign trade zone and customs compliance solutions. The purchase price for the acquisition was approximately $35.9 million, net of cash acquired, which was funded from cash on hand.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">On May 7, 2021, Descartes acquired all of the shares of Portrix Logistics Software GmbH (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Portrix</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">), a provider of multimodal rate management solutions for logistics services providers. The purchase price for the acquisition was approximately $25.2 million (EUR 20.7 million), net of cash acquired, which was funded from cash on hand.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">On July 8, 2021, Descartes acquired all of the shares of GreenMile, LLC (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">GreenMile</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">), a provider of cloud-based mobile route execution solutions for food, beverage, and broader distribution verticals. The purchase price for the acquisition was approximately $29.2 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based consideration of up to $10.0 million based on GreenMile achieving revenue-based targets over the first two years post-acquisition.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">On February 9, 2022, Descartes acquired all of the shares of NetCHB, LLC (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">NetCHB</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">), 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 consideration of up to $60.0 million based on NetCHB achieving revenue-based targets over the first two years post-acquisition.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">As a result of the Pandemic, beginning in April 2020, many countries across the globe, including Canada, the United States and other countries in which we operate, ordered businesses to close or alter their day-to-day operations. In fiscal 2022, we</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">ve seen a mix of some countries going through various levels of lock-downs and travel restrictions in response to managing the ongoing Pandemic, while in other countries we have seen a trend towards more </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">opening</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> of office operations, travel, trade-shows and the like. We</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">ve continued our work-from-home arrangements with our employees while slowly re-introducing some level of limited travel and face to face meetings for employees in some jurisdictions and continue to monitor the impacts of these shut-downs on our customers.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">CONSOLIDATED OPERATIONS</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">The following table shows, for the periods indicated, our results of operations in millions of dollars (except per share and weighted average share amounts):</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><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:62.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;"><i style="font-style:italic;">Year ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,</p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Total revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 424.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 348.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 325.8</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 101.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 89.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 85.7</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Gross margin</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 322.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 258.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 240.1</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Operating expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 154.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 129.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 128.5</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other charges</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 6.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 2.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 3.8</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Amortization of intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 59.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 55.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 55.5</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Income from operations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 103.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 71.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 52.3</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Investment income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 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:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.2</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Interest expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (1.1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (1.2)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (4.4)</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Income before income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 102.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 70.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 48.1</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 14.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 3.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 5.3</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 14.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 5.8</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 86.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 52.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 37.0</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">EARNINGS PER SHARE</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">BASIC</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1.02</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.62</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.45</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">DILUTED</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.61</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.45</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">BASIC</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 84,591</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,360</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 81,659</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">DILUTED</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 86,200</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 85,756</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 82,867</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">OTHER PERTINENT INFORMATION</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Total assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1,185.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 1,063.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 942.6</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-current financial liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 7.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 8.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 9.5</font></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><b style="font-size:9.5pt;font-weight:bold;">Total revenues </b><font style="font-size:9.5pt;">consist of </font><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">license revenues, services revenues </font><font style="font-size:9.5pt;">and </font><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">professional services and other revenues</font><font style="font-size:9.5pt;">. 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">Our total revenues were $424.7, $348.7 and $325.8 million in 2022, 2021 and 2020, respectively. The increase in revenues in 2022 compared to 2021 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $48.3 million in revenue in 2022. While we saw growth across many lines of our business, services revenue growth in 2022 was driven by sales of our solutions that address the regulatory requirements for the United Kingdom</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">s (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">UK</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">s</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) withdrawal from</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">the European Union (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Brexit</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">). The principal contributor to the balance of the increase in revenues in 2022 compared to the same period of 2021 was a full period of contribution from the acquisitions completed in 2021 (Peoplevox Limited </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Peoplevox</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">, Cracking Logistics Limited </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Kontainers</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">, and ShipTrack Inc. </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">ShipTrack</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">, collectively, the </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">2021 Acquisitions</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">).</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The principal contributor to the increase in 2021 compared to 2020 was a full period of contribution from the acquisitions completed in 2020 (all of the assets of the businesses run by the Management Systems Resources Inc. group of companies (collectively, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Visual Compliance</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">), Core Transport Technologies NZ Limited (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">CORE</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">), Tegmento AG and Contentis AG (collectively, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">STEPcom</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) and BestTransport.com, Inc. (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">BestTransport</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">), collectively, the </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">2020 Acquisitions</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">), including growth of new and existing customers which contributed an incremental $9.9 million. The principal contributor to the balance of the increase in revenues in 2021 compared to 2020 was a partial period of contribution from the 2021 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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:</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><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:66.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:'Arial','Helvetica','sans-serif';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:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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:66.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;"><i style="font-style:italic;">Year ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:66.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:8.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:8.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:8.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:66.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:66.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">License revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 5.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 5.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 7.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:66.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 1</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 2</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:66.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:66.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Services revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 378.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 309.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 284.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:66.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 89</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 89</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 88</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:66.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:66.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Professional services and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 41.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 33.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 33.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:66.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 10</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 10</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 10</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:66.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Total revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;background:#cceeff;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 424.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;background:#cceeff;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 348.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.3%;background:#cceeff;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 325.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Our </font><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">license revenues</font><font style="font-size:9.5pt;"> were $5.1 million, $5.1 million and $7.5 million in 2022, 2021 and 2020, respectively, representing 1%, 1% and 2% of total revenues in 2022, 2021 and 2020, 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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> preference to license our solutions instead of purchasing our solutions as a service and we anticipate variances from period to period.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Our </font><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">services revenues</font><font style="font-size:9.5pt;"> were $378.5 million, $309.7 million and $284.7 million in 2022, 2021 and 2020, respectively, representing 89%, 89% and 88% of total revenues in 2022, 2021 and 2020, respectively. The increase in services revenues in 2022 compared to 2021 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $48.3 million in revenue in 2022. The growth in services revenues in 2022 was driven by sales of our solutions that address the regulatory requirements from Brexit. The principal contributor to the balance of the increase in services revenues in 2022 compared to 2021 was a full period of contribution from the 2021 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The increase in 2021 compared to 2020 was primarily due to the inclusion of a full period of revenues from the 2020 Acquisitions, including growth of new and existing customers, which contributed an incremental $10.4 million. The principal contributor to the balance of the increase in services revenues in 2021 compared to 2020 was a partial period of contribution from the 2021 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">Our </font><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">professional services and other</font><font style="font-size:9.5pt;"> revenues were $41.1 million, $33.9 million and $33.6 million in 2022, 2021 and 2020, respectively, representing 10% of total revenues in each of 2022, 2021, and 2020. The increase in professional services and other revenues in 2022 compared to 2021 was primarily due to</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">growth in revenue from new and existing customers which contributed an incremental $3.4 million. The principal contributor to the balance of the increase in professional services and other revenues in 2022 compared to 2021 was a partial period of contribution from the 2022 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The increase in 2021 compared to 2020 was primarily due to a partial period of contribution from the 2021 Acquisitions, which contributed $1.7 million. The increase was partially offset by professional services projects that have been put on hold or delayed as a result of customer decisions that we attribute to various factors caused by the Pandemic, including possible staff shortages, decisions to reduce operating expenses, uncertainty on timing of new initiatives, and the like.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">We operate in one business segment providing logistics technology solutions. The following table provides additional analysis of our revenues by geographic location of customer (in millions of dollars and as a percentage of total revenues):</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><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:60.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">January&#160;31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 242.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 211.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 202.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 57</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 61</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 62</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Europe, Middle-East and Africa (&#8220;EMEA&#8221;)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 129.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 94.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 82.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 30</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 27</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 25</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 36.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 29.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 27.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 8</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 9</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Asia Pacific</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 17.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 13.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 13.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 4</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 4</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Total revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 424.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 348.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 325.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Revenues from the United States </font><font style="font-size:9.5pt;">were $242.1 million, $211.2 million and $202.8 million in 2022, 2021 and 2020, respectively. The increase in 2022 as compared to 2021 was primarily a result of growth in services revenues from new and existing customers which contributed an incremental $15.4 million in revenue. The growth in 2022 was primarily driven by sales of our data content solutions. The principal contributor to the balance of the increase in 2022 as compared to 2021 was the inclusion of a partial period of revenues from the 2022 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The increase in 2021 as compared to 2020 was primarily a result of the inclusion of a full period of revenues from the 2020 Acquisitions, including growth of new and existing customers, which contributed an incremental $8.5 million. The increase in 2021 compared to 2020 was partially offset by lower license revenues.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Revenues from the EMEA region</font><font style="font-size:9.5pt;"> were $129.0 million, $94.2 million and $82.6 million in 2022, 2021, and 2020, respectively. The increase in 2022 compared to 2021 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $28.4 million in revenue, respectively. The growth in 2022 was primarily driven by sales of our solutions that address the regulatory requirements from Brexit. The principal contributor to the balance of the increase in revenues in 2022 as compared to 2021 was the inclusion of a full period of revenues from the 2021 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">The increase in 2021 compared to 2020 was primarily a result of a partial period of contribution from the 2021 Acquisitions, which contributed $5.5 million. The principal contributor to the balance of the increase in 2021 compared to 2020 was the inclusion of a full period of revenues from the 2020Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">10</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Revenues from Canada</font><font style="font-size:9.5pt;"> were $36.1 million, $29.4 million and $27.3 million in 2022, 2021 and 2020, respectively. The increase in 2022 as compared to 2021 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $3.4 million in revenue. The principal contributor to the balance of the increase in revenues in 2022 as compared to 2021 was primarily a result of the inclusion of a full period of revenues from the 2021 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The increase in 2021 compared to 2020 was primarily a result of increased license, hardware and professional services revenues in Canada from growth with new and existing customers which contributed $1.4 million. The principal contributor to the balance of the increase in 2021 compared to 2020 was a partial period of contribution from the 2021 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Revenues from the Asia Pacific region</font><font style="font-size:9.5pt;"> were $17.5 million, $13.9 million and $13.1 million in 2022, 2021 and 2020, respectively. The increase in 2022 compared to 2021 was primarily a result of the inclusion of a full period of revenues from the 2021 Acquisitions, which contributed an incremental $1.5 million. The principal contributor to the balance of the increase in revenues in 2022 as compared to 2021 was primarily due to growth in services revenues from new and existing customers.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The increase in 2021 compared to 2020 was primarily a result of the inclusion of a partial period of revenues from the 2021 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">The following table provides analysis of cost of revenues (in millions of dollars) and the related gross margins for the periods indicated:</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><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:60.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;"><i style="font-style:italic;">Year ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><u style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">License</u></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">License revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 5.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 5.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 7.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost of license revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Gross margin</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 4.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 4.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 6.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 78</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 86</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 88</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><u style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Services</u></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Services revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 378.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 309.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 284.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost of services revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 78.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 69.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 65.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Gross margin</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 300.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 240.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 219.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 79</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 78</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 77</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><u style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Professional services and other</u></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Professional services and other revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 41.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 33.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 33.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost of professional services and other revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 22.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 19.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 19.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Gross margin</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 18.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 14.0</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 14.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 45</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 41</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 43</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="font-style:italic;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="font-style:italic;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><u style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Total</u></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 424.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 348.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 325.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 101.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 89.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 85.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Gross margin</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 322.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 258.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 240.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 76</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 74</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-top:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 74</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Cost of license revenues</font><font style="font-size:9.5pt;"> consists of costs related to our sale of third-party technology, such as third-party map license fees and royalties.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">11</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Gross margin percentage for license revenues </font><font style="font-size:9.5pt;">was 78%, 86% and 88% in 2022, 2021 and 2020, 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Cost of services revenues</font><font style="font-size:9.5pt;"> consists of internal costs of running our systems and applications and other personnel-related expenses incurred in providing maintenance, including customer support.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Gross margin percentage for services revenues </font><font style="font-size:9.5pt;">was 79%, 78% and 77% in 2022, 2021 and 2020, respectively. Our margins in 2022 compared to 2021 continue to be positively impacted by the growth in services revenue products with higher margins such as our content solutions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Cost of professional services and other revenues</font><font style="font-size:9.5pt;"> consists of personnel-related expenses incurred in providing professional services, hardware installation as well as hardware costs.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Gross margin percentage for professional services and other revenues </font><font style="font-size:9.5pt;">was 45%, 41% and 43% for 2022, 2021 and 2020, 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 2022 compared to 20221 was positively impacted by an increased proportion of professional services revenues compared to hardware and other revenues.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The margin in 2021 compared to 2020 was negatively impacted by a decreased proportion of professional services revenues compared to hardware and other revenues.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Operating expenses,</font><font style="font-size:9.5pt;"> consisting of sales and marketing, research and development and general and administrative expenses, were $154.0 million, $129.2 million and $128.5 million for 2022, 2021 and 2020, respectively. Operating expenses were higher in 2022 compared to 2021 primarily due to increased headcount-related costs, excluding costs from the 2021 and 2022 Acquisitions, which added approximately $14.3 million. The principal contributor to the balance of the increase in operating expenses in 2022 compared to 2021 was a partial period of costs from the 2022 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">Operating expenses were higher in 2021 compared to 2020 primarily because of headcount-related costs from the 2021 Acquisitions, which contributed an incremental $4.4 million partially offset by lower travel expenses, as a result of the Pandemic, which reduced expenses by approximately $3.9 million.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">12</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">The following table provides analysis of operating expenses (in millions of dollars and as a percentage of total revenues) for the periods indicated:</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:11pt;visibility:hidden;">&#8203;</font></p><div align="left"><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:60.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;"><i style="font-style:italic;">Year ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Total revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 424.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 348.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 325.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Sales and marketing expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 46.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 38.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 40.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 11</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 11</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 12</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Research and development expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 62.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 54.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 53.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 15</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 16</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 16</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">General and administrative expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 44.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 36.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 34.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 10</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 10</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 11</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Total operating expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 154.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 129.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 128.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="font-style:italic;font-weight:bold;white-space:pre-wrap;"> 36</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-style:italic;font-weight:bold;">%&#160;&#160;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 37</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%&#160;&#160;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><i style="font-style:italic;white-space:pre-wrap;"> 39</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">%</i></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Sales and marketing expenses</font><font style="font-size:9.5pt;"> include 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 $46.9 million, $38.8 million and $40.4 million in 2022, 2021 and 2020, respectively. Sales and marketing expenses as a percentage of total revenues were 11% in 2022, 11% in 2021 and 12% in 2020, respectively. The increase in sales and marketing expenses in 2022 compared to 2021 was primarily due to increased headcount-related costs.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The decrease in sales and marketing expenses in 2021 compared to 2020 was primarily due to a decline of in-person marketing events and trade-shows, including the cancelation of our annual Descartes Evolution User Group, as a result of the Pandemic.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Research and development expenses</font><font style="font-size:9.5pt;"> 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 2022, 2021 and 2020. Research and development expenses were $62.6 million, $54.1 million and $53.5 million in 2022, 2021 and 2020, respectively. Research and development expenses as a percentage of total revenues were 15% in 2022, 16% in 2021 and 16% in 2020, respectively. The increase in research and development expenses in 2022 compared to 2021 was primarily due to headcount-related costs from the 2021 Acquisitions and 2022 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The increase in research and development expenses in 2021 compared to 2020 was primarily due to headcount-related costs from the 2021 Acquisitions partially offset by a reduction in research and development expenses as a result of headcount reductions under the Fiscal 2021 Restructuring Plan.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">General and administrative expenses</font><font style="font-size:9.5pt;"> consist primarily of salaries, stock-based compensation and other personnel-related costs of administrative personnel, as well as professional fees, insurance and other administrative expenses. General and administrative costs were $44.5 million, $36.3 million and $34.6 million in 2022, 2021 and 2020, respectively. General and administrative expenses as a percentage of total revenues were 10%, 10% and 11% in 2022, 2021 and 2020, respectively. The increase in general and administrative expenses in 2022 compared to 2021 was primarily due to costs from the 2021 Acquisitions, increased headcount-related costs as well as increased stock-based compensation from fiscal 2021 and fiscal 2022 grants.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">13</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The increase in general and administrative expenses in 2021 compared to 2020 was primarily due to increased stock-based compensation expense from fiscal 2021 grants as well as headcount-related costs from the 2020 Acquisitions partially offset by a reduction in general and administrative expenses as a result of headcount reductions under the Fiscal 2021 Restructuring Plan.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Other charges </font><font style="font-size:9.5pt;">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. Contingent consideration adjustments relate to changes in the fair value estimate of contingent consideration. Restructuring costs relate to the integration of previously-completed acquisitions and other cost-reduction activities. Other charges were $6.4 million, $2.3 million and $3.8 million in 2022, 2021 and 2020, respectively. The increase in other charges in 2022 compared to 2021 was primarily a result of contingent consideration adjustments of $4.5 million in 2022. The decrease in other charges in 2021 compared to 2020 was primarily a result of contingent consideration adjustments in 2021.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Amortization of intangible assets</font><font style="font-size:9.5pt;"> 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 $59.1 million, $55.9 million and $55.5 million in 2022, 2021 and 2020, respectively. Amortization expense increased in 2022 compared to 2021 primarily due the 2022 Acquisitions, which resulted in an incremental $5.4 million of amortization expense. Amortization expense increased in 2021 compared to 2020 primarily due to a full period of amortization from the 2020 Acquisitions, which resulted in an incremental $1.9 million of amortization expense.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Investment income</font><font style="font-size:9.5pt;"> was $0.3 million, $0.2 million and $0.2 million in 2022, 2021 and 2020, respectively. Investment income is generally earned on excess cash balances.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Interest expense</font><font style="font-size:9.5pt;"> was $1.1 million, $1.2 million and $4.4 million in 2022, 2021 and 2020, respectively. 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. Interest expense decreased in 2022 compared to 2021 as a result of a lower average debt balance. Interest expense decreased in 2021 compared to 2020 as a result of lower average interest rates and a lower average debt balance.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Income tax expense </font><font style="font-size:9.5pt;">is comprised of current and deferred income tax expense. Income tax expense for 2022, 2021 and 2020 was 16%, 26% and 23% of income before income taxes, respectively, or $16.3 million, $18.3 million and $11.1 million, respectively. The income tax rate as a percentage of income before income taxes (the </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">effective tax rate</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) decreased in 2022 compared to 2021 primarily as a result of a release in valuation allowances on tax losses in EMEA carried forward from previous periods.</font><font style="font-family:'Verdana';font-size:9.5pt;">&#160;</font><font style="font-size:9.5pt;">In addition, the benefit of differences between the Canadian and foreign tax rates, the effect of tax rate changes in foreign jurisdictions also contributed to the decrease in income tax expense in 2022.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">The income tax rate as a percentage of income before income taxes increased in 2021 compared to 2020 primarily as a result of an increase in non-deductible expenses and tax reserves partially offset by a recovery of income tax of previous periods.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">14</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Income tax expense </font><font style="font-family:'Verdana';font-size:9.5pt;font-style:italic;font-weight:bold;">&#8211;</font><font style="font-size:9.5pt;font-style:italic;font-weight:bold;"> current</font><font style="font-size:9.5pt;"> was $14.8 million, $3.8 million and $5.3 million in 2022, 2021 and 2020, respectively. Current income tax expense increased in 2022 compared to 2021 primarily due to a current tax recovery in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Current income tax expense decreased in 2021 compared to 2020 primarily due to a voluntary change we elected to adopt in accounting for deferred revenue for income tax purposes in the United States. This change resulted in a decrease of $9.3 million in current income tax expense in 2021 and a corresponding increase in the deferred income tax expense for the same period. This decrease was partially offset by an increase in income before tax in other jurisdictions as a result of growth in the business.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Income tax expense </font><font style="font-family:'Verdana';font-size:9.5pt;font-style:italic;font-weight:bold;">&#8211;</font><font style="font-size:9.5pt;font-style:italic;font-weight:bold;"> deferred</font><font style="font-size:9.5pt;"> was $1.5 million, $14.5 million and $5.8 million in 2022, 2021 and 2020, respectively. Deferred income tax expense decreased in 2022 compared to 2021 primarily due to additional deferred tax expense in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company as well as a release in valuation allowances recorded in 2022 related to tax losses in EMEA carried forward from previous periods.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Deferred income tax expense increased in 2021 compared to 2020 primarily due to a voluntary change we elected to adopt in accounting for deferred revenue for income tax purposes in the United States.</font><font style="font-family:'Verdana';font-size:9.5pt;">&#160;</font><font style="font-size:9.5pt;">This increase was partially offset by a release in valuation allowance for other jurisdictions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Net income</font><font style="font-size:9.5pt;"> was $86.3 million, $52.1 million and $37.0 million in 2022, 2021 and 2020 respectively. Net income in 2022 compared to 2021 was positively impacted by the growth in services revenues.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Net income in 2021 compared to 2020 was positively impacted by the 2020 Acquisitions, which contributed an incremental $12.7 million to n</font><font style="font-size:9.5pt;">et income (excluding any interest costs on financing the a</font><font style="font-size:9.5pt;">cquisitions).</font></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">QUARTERLY OPERATING RESULTS</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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:</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><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:26.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:33.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fiscal&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:36.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fiscal&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:33.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:36.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">First&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Second&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Third&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fourth&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">First&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Second&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Third&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fourth&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:7.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:7.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:7.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Quarter</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 83,703</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,045</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 87,508</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 93,408</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 98,838</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 104,570</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 108,911</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 112,371</font></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Gross margin</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 61,836</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 61,648</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 64,962</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 70,308</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 74,989</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 79,100</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 83,304</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 85,487</font></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Operating expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 31,638</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 30,828</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 31,695</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 34,957</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 37,236</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 37,656</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 39,374</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 39,653</font></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 11,047</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 10,542</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 13,308</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 17,203</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 18,421</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 23,176</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 25,491</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 19,194</font></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Basic earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.13</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.13</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.16</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.20</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.22</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.27</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.30</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.23</font></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Diluted earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.13</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.12</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.15</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.20</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.21</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.27</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.30</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.22</font></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average shares outstanding (thousands):</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,156</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,316</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,777</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,488</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,501</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,566</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,636</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,659</font></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 85,456</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 85,753</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 85,917</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 85,959</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 86,045</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 86,128</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 86,328</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 86,341</font></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">Revenues over the comparative periods have been positively impacted by the six acquisitions that we have completed since the beginning of fiscal 2021 through the end of the fourth quarter of fiscal 2022. In addition, we have seen increased revenues as a result of an increase in transactions processed over our</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">15</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 data content. In the first two quarters of fiscal 2021, we observed a decline in revenues compared to our fourth quarter of fiscal 2020 which is primarily attributed to a decline in global shipments volumes and decreased demand for certain professional services, in both cases which we attribute to the observed impact of the Pandemic during that period. Subsequent to the first quarter of fiscal 2021, we observed a recovery in overall global shipment volumes as well as increased demand for professional services.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">In the fourth quarter of 2022 revenues and gross margin increased compared to the third quarter of 2022 primarily due to growth in transaction and subscription revenues with new and existing customers which contributed an incremental $2.3 million in revenues. However, in the fourth quarter of 2022 net income decreased compared to the third quarter of 2022 as operating expenses increased primarily due to increased headcount-related costs (which contributed an incremental $0.4 million in operating expenses) and other charges increased (primarily a result of contingent consideration adjustments related to previously-completed acquisitions and a $4.5 million increase in income tax expense) compared to the previous quarter.</font></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">LIQUIDITY AND CAPITAL RESOURCES</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Cash. </font><font style="font-size:9.5pt;">We had $213.4 million and $133.7 million in cash as at January 31, 2022 and January 31, 2021, respectively. All cash was held in interest-bearing bank accounts, primarily with major Canadian, US and European banks. The cash balance increased from January 31, 2021 to January 31, 2022 by $79.7 million primarily due to cash generated from operations partially offset by cash used for acquisitions. Subsequent to January 31, 2022, we used $38.7 million in cash to fund the acquisition of NetCHB.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Credit facility. </font><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">16</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">As at January 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 January 31, 2022 and remain in compliance as of the date of this MD&amp;A.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Short-form base shelf prospectus. </font><font style="font-size:9.5pt;">On July 16, 2020, we filed the 2020 Base Shelf Prospectus, 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 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 is limited to an aggregate of $1 billion. No securities have yet been sold pursuant to the 2020 Base Shelf Prospectus.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Working capital. </font><font style="font-size:9.5pt;">As at January 31, 2022, our working capital surplus (current assets less current liabilities) was $158.6 million. Current assets primarily include $213.4 million of cash, $41.7 million of current trade receivables and $22.0 million of prepaid assets. Current liabilities primarily include $56.8 million of deferred revenue, $56.4 million of accrued liabilities and $10.6 million of accounts payable. Our working capital has increased from January 31, 2021 to January 31, 2022 by $59.8 million, primarily due to cash generated from operations partially offset by cash used for acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Historically, we</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">With respect to earnings of our non-Canadian subsidiaries, our intention is that these earnings will be reinvested in each subsidiary indefinitely. Of the $213.4 million of cash as at January 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">17</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">The table set forth below provides a summary of cash flows for the periods indicated in millions of dollars:</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><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:62.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;margin:0pt;"><i style="font-style:italic;">Year ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,</p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cash provided by operating activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 176.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 131.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 104.3</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Additions to property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (4.8)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (3.8)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (4.9)</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Acquisition of subsidiaries, net of cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (90.3)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (48.4)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (292.1)</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Proceeds from borrowing on credit facility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 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.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 10.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 297.0</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Credit facility and other debt repayments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (1.1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (10.8)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (322.6)</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Payment of debt issuance costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin: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.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> &#8212;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (1.4)</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Issuance of common shares, net of issuance costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 2.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 6.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 238.0</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Payment of contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 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.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> &#8212;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (0.8)</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Effect of foreign exchange rate on cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (2.8)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 4.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (0.4)</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net change in cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 79.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 89.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 17.1</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cash, beginning of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 133.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 44.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 27.3</font></p></td></tr><tr><td style="vertical-align:bottom;width:62.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cash, end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 213.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 133.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 44.4</font></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Cash provided by operating activities </font><font style="font-size:9.5pt;">was $176.1 million, $131.2 million and $104.3 million for 2022, 2021 and 2020, respectively. For 2022, the $176.1 million of cash provided by operating activities resulted from $86.3 million of net income, plus adjustments for $77.0 million of non-cash items included in net income and plus $12.8 million of cash generated from changes in our operating assets and liabilities. Cash provided by operating activities increased in 2022 compared to 2021 primarily due to the increase in net income adjusted for non-cash items as well as strong cash collections from customers.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">For 2021, the $131.2 million of cash provided by operating activities resulted from $52.1 million of net income, plus adjustments for $82.7 million of non-cash items included in net income and less $3.6 million of cash used in changes in our operating assets and liabilities. Cash provided by operating activities increased in 2021 compared to 2020 primarily due to the increase in net income adjusted for non-cash items as well as strong cash collections from customers.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Additions to property and equipment</font><font style="font-size:9.5pt;"> were $4.8 million, $3.8 million and $4.9 million in 2022, 2021 and 2020, respectively. Additions to property and equipment increased in 2022 compared to 2021 primarily due to investments in computing equipment and software to support our network and continue to enhance our security infrastructure. Additions to property and equipment decreased in 2021 compared to 2020 primarily due to the ongoing transition of property and equipment investment to cloud-based operating expenses.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Acquisition of subsidiaries, net of cash acquired</font><font style="font-size:9.5pt;"> were $90.3 million, $48.4 million and $292.1 million in 2022, 2021 and 2020, respectively. Acquisitions in 2022 are related to QuestaWeb, Portrix and GreenMile. Acquisitions in 2021 related to Peoplevox, Kontainers and ShipTrack.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Proceeds from borrowing on credit facility </font><font style="font-size:9.5pt;">were nil, $10.2 million and $297.0 million in 2022, 2021 and 2020, respectively. In 2021 the borrowings on our credit facility partially financed the acquisition of Peoplevox. In 2020 the borrowings on our credit facility financed the 2020 Acquisitions.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Credit facility and other debt repayments</font><font style="font-size:9.5pt;"> were $1.1 million, $10.8 million and $322.6 million in 2022, 2021 and 2020, respectively.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Payment of debt issuance costs </font><font style="font-size:9.5pt;">were $0.1 million, nil and $1.4 million in 2022, 2021 and 2020, respectively, and relate to costs paid in amending the terms of our credit facility agreement.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Issuance of common shares, net of issuance costs </font><font style="font-size:9.5pt;">were $2.7 million, $6.2 million and $238.0 million in 2022, 2021 and 2020, respectively. In 2022 the cash provided was primarily a result of the exercise of employee stock options. In 2021 the cash provided was primarily a result of the exercise of employee</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">18</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">stock options. In 2020, the cash provided was primarily a result of the June 2019 public offering of common shares.</font></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">COMMITMENTS, CONTINGENCIES AND GUARANTEES</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Commitments</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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 January 31, 2022:</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div align="left"><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:49.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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.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:'Arial','Helvetica','sans-serif';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:49.49%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Less&#160;than&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:2.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">More&#160;than&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:49.49%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:8.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">1&#160;year</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:8.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">1-3&#160;years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:8.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">4-5&#160;years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:8.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">5&#160;years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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:8.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.49%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:49.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Operating lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 5.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 0.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 11.9</b></p></td></tr></table></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><u style="font-size:9.5pt;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Lease Obligations</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We are committed under non-cancelable operating leases for buildings, vehicles and computer equipment with terms expiring at various dates through 2029. The undiscounted future minimum amounts payable under these lease agreements are presented in the table above.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><u style="font-size:9.5pt;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Other Obligations</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><b style="font-size:9.5pt;font-weight:bold;">Deferred Share Unit (</b><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#8220;</b><b style="font-size:9.5pt;font-weight:bold;">DSU</b><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#8221;</b><b style="font-size:9.5pt;font-weight:bold;">) and Cash-settled Restricted Share Unit (</b><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#8220;</b><b style="font-size:9.5pt;font-weight:bold;">CRSU</b><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">&#8221;</b><b style="font-size:9.5pt;font-weight:bold;">) Plans</b></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">As discussed in Note 2 to the audited consolidated financial statements for 2022 included in this 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 nil and $1.0 million, respectively, at January 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 January 31, 2022, we had equity derivatives for 252,011 Descartes common shares and a DSU liability for 252,011 Descartes common shares, resulting in no net exposure resulting from changes to our share price.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Contingencies</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><u style="font-size:9.5pt;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Product Warranties</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 consolidated financial statements.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><u style="font-size:9.5pt;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Business combination agreements</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">In respect of our acquisitions of Kontainers, ShipTrack and GreenMile, up to $35.6 million in cash may become payable if certain revenue performance targets are met in the two years following the acquisition. A balance of $13.0 million is accrued related to the fair value of this contingent consideration as at January 31, 2022.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">19</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Guarantees</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Guarantees</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">. The following lists our significant guarantees:</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><u style="font-size:9.5pt;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Intellectual property indemnification obligations</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><u style="font-size:9.5pt;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Other indemnification agreements</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 consolidated financial statements for the guarantees or indemnities described above.</font></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">OUTSTANDING SHARE DATA</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We have an unlimited number of common shares authorized for issuance. As of March 2, 2022, we had 84,756,210 common shares issued and outstanding.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">As of March 2, 2022, there were 1,319,279 options issued and outstanding, and 3,041,719 options remaining available for grant under all stock option plans.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">As of March 2, 2022, there were 817,242 performance share units (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">PSUs</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) and 410,980 restricted share units (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">RSUs</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) issued and outstanding, with a potential of up to a further 162,775 PSUs being earned if a maximum 2.0 performance factor is achieved in respect of the outstanding PSU awards. Also, as of March 2, 2022, there were 875,761 units remaining available for grant under all performance and restricted share unit plans.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">Our board of directors has adopted a shareholder rights plan (the </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Rights Plan</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) 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</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">20</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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.</font></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;margin-top:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">APPLICATION OF CRITICAL ACCOUNTING POLICIES AND ESTIMATES</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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 this Annual Report.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Our management has discussed the development, selection and application of our critical accounting policies with the audit committee of the board of directors.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The following discusses the critical accounting estimates and assumptions that management has made under these policies and how they affect the amounts reported in the fiscal 2022 consolidated financial statements:</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Revenue recognition</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the standalone selling price (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">SSP). SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract. Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of its promised goods or services, we conduct a regular analysis to determine whether various goods or services</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">21</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Impairment of long-lived assets</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset groups is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. Our impairment analysis contains estimates due to the inherent uncertainty relating to forecasting long-term estimated cash flows and determining the ultimate useful lives of asset or asset groups. Actual results will differ, which could materially impact our impairment assessment.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Goodwill</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We test for impairment of goodwill at least annually on October 31st of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Application of the goodwill impairment test requires judgment, including the identification of reporting units, assigning assets and liabilities to reporting units, assigning goodwill to reporting units, assessing qualitative factors and determining the fair value of each reporting unit. Judgments are required to estimate the fair value of reporting units and include estimating future cash flows, determining appropriate discount rates and other assumptions. Changes in these estimates and assumptions could materially affect the determination of fair value and/or goodwill impairment for each reporting unit.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Stock-based compensation plans</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><u style="font-size:9.5pt;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Stock Options</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Employee stock options generally vest over a five-year period starting from the grant date and expire seven years from the grant date. Non-employee directors</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> and officers</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> stock options generally have quarterly vesting over a three to five-year period.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The fair value of employee stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><u style="font-size:9.5pt;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Performance &amp; Restricted Share Units</u></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">PSUs are measured at fair value estimated using a Monte Carlo Simulation approach and will be expensed to stock-based compensation expense over the vesting period. The ultimate number of PSUs that vest is based on the total shareholder return (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">TSR</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">22</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">RSUs vest annually over a three-year period starting from the grant date and expire ten years from the grant date. We issue new shares from treasury upon the redemption of an RSU. RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Income Taxes</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We have provided for income taxes based on information that is currently available to us. Tax filings are subject to audits, which could materially change the amount of deferred income tax assets and liabilities. We record deferred tax assets on our consolidated balance sheet for tax benefits that we currently expect to realize in future periods. Over recent years, we have determined that there was sufficient positive evidence such that it was more likely than not that we would utilize all or a portion of deferred tax assets in certain jurisdictions, to offset taxable income in future periods.</font><font style="font-family:'Verdana';font-size:9.5pt;">&#160;</font><font style="font-size:9.5pt;">This positive evidence included that we have earned cumulative income, after permanent differences, in each of these jurisdictions in at least the current and two preceding tax years. As such, over recent years, we have reduced our valuation allowances by amounts which represent the amount of tax loss carry forwards that we project will be used to offset taxable income in these jurisdictions over the foreseeable future. Any further change to increase or decrease the valuation allowance for the deferred tax assets would result in an income tax expense or income tax recovery, respectively, on the consolidated statements of operations.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Business Combinations</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">In connection with business acquisitions that we have completed, we identify and estimate the fair value of net assets acquired, including certain identifiable intangible assets (other than goodwill) and liabilities assumed in the acquisitions. Any excess of the purchase price over the estimated fair value of the net assets acquired is assigned to goodwill. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Our initial allocation of purchase price is generally preliminary in nature and may not be final for up to one year from the date of acquisition. The determination of the acquisition date fair value of the intangible assets acquired required us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates. Changes to these estimates and assumptions may result in material differences depending on the size of the acquisition completed.</font></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">CHANGE IN / INITIAL ADOPTION OF ACCOUNTING POLICIES</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Recently adopted accounting pronouncements</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">In February 2016, the FASB issued Accounting Standards Update 2016-02, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Leases (Topic 842)</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">ASU 2016-02</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) and issued subsequent amendments to the initial guidance during 2018, collectively referred to as </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">ASC 842</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">. These updates supersede the lease guidance in ASC Topic 840, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Leases</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> and require the recognition of lease assets and lease liabilities by lessees for most leases previously classified as operating leases under ASC Topic 840. Leases will continue to be classified as either operating or finance. ASC 842 was effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2018, which was our fiscal year that began on February 1, 2019 (fiscal 2020). The Company adopted ASC 842 as of February 1, 2019 using the cumulative effect method.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">As permitted under ASC 842, we have elected to apply the practical expedient to carry forward our current assessments of whether a contract contains a lease, lease classification, remaining lease terms and amounts capitalized as initial direct costs. We have also elected to apply the practical expedient not to recognize right-of-use (ROU) assets and lease liabilities for short-term leases that have a lease term of 12 months or less. The adoption of ASC 842 resulted in an increase to ROU assets and lease liabilities of</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">23</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">$10.4 million as of February 1, 2019. The adoption of ASC 842 did not have a material impact on either our consolidated statement of operations or our consolidated statement of cash flows.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">In June 2016, the FASB issued Accounting Standards Update 2016-13, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Financial Instruments </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">ASU 2016-13</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) and issued subsequent amendments to the initial guidance during the 2019 calendar year, collectively referred to as </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">ASC 326</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">. ASC 326 requires the measurement and recognition of expected credit losses for financial assets held at amortized cost. ASC 326 replaces the existing incurred loss impairment model with an expected loss model which requires the use of forward-looking information to calculate credit loss estimates. ASC 326 was effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2019, which was our fiscal year that began on February 1, 2020 (fiscal 2021).</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The Company is exposed to credit losses primarily through its trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions. The Company adopted ASC 326 as of February 1, 2020 using the cumulative effect method and therefore the comparative information has not been restated. The adoption of ASC 326 did not have a material impact on our results of operations or disclosures.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">In January 2017, the FASB issued Accounting Standards Update 2017-04, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Intangibles </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> Goodwill and Other (Topic 350): Simplifying the Test for Goodwill Impairment</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">ASU 2017-04</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">). ASU 2017-04 simplifies how an entity is required to test goodwill for impairment. ASU 2017-04 was effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2019, which was our fiscal year that began on February 1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">In August 2018, the FASB issued Accounting Standards Update 2018-15, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Intangibles </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> Goodwill and Other </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> Internal-Use Software (Subtopic 350-40): Customer</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">s Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">ASU 2018-15</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">). ASU 2018-15 aligns the requirements for capitalizing implementation costs incurred in a hosting arrangement that is a service contract with the requirements for capitalizing implementation costs incurred to develop or obtain internal-use software. ASU 2018-15 was effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2019, which was our fiscal year that began on February 1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">In December 2019, the FASB issued Accounting Standards Update 2019-12, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">ASU 2019-12</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">). ASU 2019-12 simplifies how an entity accounts for income taxes. ASU 2019-12 is effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2020, which is our fiscal year that began on February 1, 2021 (fiscal 2022). The Company adopted this guidance in the first quarter of fiscal 2022. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Recently issued accounting pronouncements</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">In October 2021, the FASB issued Accounting Standards Update 2021-08, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">ASU 2021-08</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">). 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">24</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">CONTROLS AND PROCEDURES</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, management evaluated our disclosure controls and procedures (as defined in National Instrument 52-109 Certification of Disclosure in Issuers</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> Annual and Interim Filings) as of January 31, 2022. Based upon that evaluation, our Chief Executive Officer and Chief Financial Officer concluded that our disclosure controls and procedures were effective.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, management assessed the effectiveness of our internal control over financial reporting (as defined in National Instrument 52-109 Certification of Disclosure in Issuers</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> Annual and Interim Filings) as of January 31, 2022, based on criteria established in </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Internal Control </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> Integrated Framework</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> (2013), issued by the Committee of Sponsoring Organizations of the Treadway Commission. Based on the assessment, our Chief Executive Officer and Chief Financial Officer concluded that, as of January 31, 2022, our internal control over financial reporting was effective.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">During the period beginning on November 1, 2021 and ended on January 31, 2022, no changes were made to the Company</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">s internal control over financial reporting that have materially affected, or are reasonably likely to materially affect, the Company</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">s internal control over financial reporting.</font></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">TRENDS / BUSINESS OUTLOOK</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The impact of the recent escalation 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 the Ukraine, it</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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, such as Germany. 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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 </font><font style="font-size:9.5pt;">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 </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">pre-Pandemic</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> levels. We make this observation 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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">t know what the impact of these events will be on</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">25</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">In fiscal 2021 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 2022 we have invested in our business by hiring additional staff and continue to engage in virtual marketing events while, at the same time, some of our restrictions on in-person marketing events and travel have started to gradually ease as the uncertainty caused by the Pandemic subsides. 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 in fiscal 2022. 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Industry consolidation, rapid technological change, growth of ecommerce and frequent new product introductions and enhancements continue to characterize the software and services industries </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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 result, we believe there is a trend away from using manual and paper-based supply</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">26</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">chain and logistics processes towards electronic processes powered by the exchange of electronic information between logistics and supply chain participants.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">MRM</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 2022, 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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. Going forward, given the potential ongoing uncertain economic impact of the Pandemic on our customers</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> businesses, we anticipate that the amount of recurring revenues lost from the previous year could be higher than our historic experience.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We internally measure and manage our </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">baseline calibration</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">, which we define as the difference between our </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">baseline revenues</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> and </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">baseline operating expenses</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">. Each of these measures constitutes a </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">supplementary financial measure</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> under Canadian Securities Administrators</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> National Instrument 52-112 and does not have a directly comparable financial measure disclosed in our financial statements. We define our </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">baseline revenues</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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 </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">baseline operating expenses</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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 </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">baseline operating expenses,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> above. We calculate and disclose </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">baseline revenues,</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">baseline operating expenses</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> and </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">baseline calibration</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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 February 9, 2022, using foreign exchange rates of $0.79 to CAD</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">27</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">$1.00, $1.13 to EUR 1.00 and $1.36 to </font><font style="font-family:'Verdana';font-size:9.5pt;">&#163;</font><font style="font-size:9.5pt;">1.00, we estimated that our baseline revenues for the first quarter of 2023 are approximately $100.2 million and our baseline operating expenses are approximately $62.3 million. We consider this to be our baseline calibration of approximately $37.9 million for the first quarter of 2023, or approximately 38% of our baseline revenues as at February 9, 2022.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We estimate that aggregate amortization expense for existing intangible assets will be $53.4 million for 2023, $41.2 million for 2024, $38.4 million for 2025, $34.1 million for 2026, $19.3 million for 2027 and $43.2 million thereafter. Expected future amortization expense is based on the level of existing intangible assets at January 31, 2022, is subject to fluctuations in foreign exchange rates and assumes no future adjustments or impairment of existing intangible assets.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We anticipate that stock-based compensation expense for fiscal 2023 for grants outstanding as at January 31, 2022 will be approximately $9.3 million, subject to any necessary adjustments resulting from actual stock-based compensation forfeitures and fluctuations in foreign exchange rates.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We performed our annual goodwill impairment tests in accordance with ASC Topic 350, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Intangibles </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> Goodwill and Other</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> (</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">ASC Topic 350</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">) 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</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">In fiscal 2022, capital expenditures were $4.8 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 $4.0 to $5.0 million in capital expenditures in fiscal 2023 primarily related to investments in our network and security infrastructure.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> equity. 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. Some of our cash is held in foreign currencies. We currently have no specific hedging program in place to address fluctuations in international currency exchange rates. We can make no accurate prediction of what will happen with international currency exchange rates going forward. However, if the US dollar was to weaken in comparison to foreign currencies, then we anticipate this will increase the expenses of our business and have a negative impact on our results of operations. By way of illustration, 64% of our revenues in the fourth quarter of fiscal 2022 were in US dollars, 12% in euro, 9% in British pound sterling, 9% in Canadian dollars, and the balance in mixed currencies, while 46% of our operating expenses were in US dollars, 15% in euro, 4% in British pound sterling, 24% in Canadian dollars, and the balance in mixed currencies.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">28</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We experienced an effective tax rate of approximately 16% in fiscal 2022, primarily as a result of a release in valuation allowances related to tax losses carried forward that were previously unrecognized. There continues to be a number of uncertainties that could impact our tax rate in fiscal 2023, such as tax reform in the US, as well as other potential tax rate changes in foreign jurisdictions. However, at this time we anticipate that our effective tax rate on an annualized basis would return to our typical range of 25% to 30% of pre-tax income in 2023 and in subsequent years.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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 January 31, 2022, and subject to any further draws or repayments on the credit facility, we anticipate that interest expense will be approximately $1.1 million in fiscal 2023, which includes debt standby charges as well as the amortization of deferred financing charges.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Certain future commitments are set out above in the section of this MD&amp;A called </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Commitments, Contingencies and Guarantees</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">. We believe that we have sufficient liquidity to fund our current operating and working capital requirements, including the payment of these commitments.</font></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:12pt 0pt 12pt 0pt;"><b style="font-size:11pt;font-weight:bold;">CERTAIN FACTORS THAT MAY AFFECT FUTURE RESULTS</b></p><div style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><hr noshade="true" color="#000000" size="1" width="50.0%" style="background-color:#000000;color:#000000;height:1pt;position:relative;top:0.6em;border:none;margin:0pt;" align="left"></div><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-size:9.5pt;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:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-size:9.5pt;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:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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 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:</font></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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">System or network failure;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Software errors, failures and crashes;</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">29</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Interruption in the supply of power;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Virus proliferation or malware;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Communications failures;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Information or infrastructure security breaches;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Insufficient investment in infrastructure;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Earthquakes, fires, floods, natural disasters, or other force majeure events outside our control; and</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Acts of war, sabotage, cyber-attacks, denial-of-service attacks and/or terrorism.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> information.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">Some jurisdictions have enacted laws requiring companies to notify individuals of data security breaches</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">The Pandemic and the efforts to respond to it have negatively impacted the global economy, has, at times, disrupted some manufacturing operations and global supply chains and has at times, 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 increase the costs we incur to provide our solutions and may reduce profit margins.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">30</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">We may have difficulties identifying, successfully integrating or maintaining or growing our acquired businesses.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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 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:</font></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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Challenges identifying suitable businesses to buy and negotiating the acquisition of those businesses on acceptable terms;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Challenges completing the acquisitions within our expected time frames and budgets;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Challenges in integrating acquired businesses with our business;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Loss of customers of the acquired business;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Loss of key personnel from the acquired business, such as former executive officers or key technical personnel;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Non-compatible business cultures;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">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;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Difficulties in gaining necessary approvals in international markets to expand acquired businesses as contemplated;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Our inability to obtain or maintain necessary security clearances to provide international shipment management services;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Our failure to make appropriate capital investments in infrastructure to facilitate growth; and</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Other risk factors identified in this report.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We may fail to properly respond to any of these risks, which may have a material adverse effect on our business results.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Investments in acquisitions and other business initiatives involve a number of risks that could harm our business.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">31</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">Acquisitions and other business initiatives involve a number of risks, including: substantial investment of funds, diversion of management</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Changes in government filing or screening requirements for global trade may adversely impact our business.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Disruptions in the movement of freight could negatively affect our revenues.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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 disaster, terrorist events, political instability, changes in cross</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">32</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">General economic conditions may affect our results of operations and financial condition.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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. 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 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 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> business or in regulation impacting our customers</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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.</font><font style="font-family:'Verdana';font-size:9.5pt;">&#160;</font><font style="font-size:9.5pt;">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</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">33</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">We may not remain competitive. Increased competition could seriously harm our business.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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:</font></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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Established relationships with existing customers or prospects that we are targeting;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Superior product functionality and industry-specific expertise;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Broader range of products to offer and better product life cycle management;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Larger installed base of customers;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Greater financial, technical, marketing, sales, distribution and other resources;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Better performance;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Lower cost structure and more profitable operations;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Greater investment in infrastructure;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Greater worldwide presence;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Early adoption of, or adaptation to changes in, technology; or</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Longer operating history; and/or greater name recognition.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Emergence or increased adoption of alternative sources for trade data may adversely impact our business.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">34</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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, euros and other foreign currencies. Therefore, changes in the value of the U.S. dollar as compared to the Canadian dollar, 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">We may have exposure to greater than anticipated tax liabilities or expenses.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">35</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Changes to earnings resulting from past acquisitions may adversely affect our operating results.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">Under ASC Topic 805, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Business Combinations</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">, we allocate the total purchase price to an acquired company</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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:</font></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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Impairment of goodwill or intangible assets;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">A reduction in the useful lives of intangible assets acquired;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Identification of assumed contingent liabilities after we finalize the purchase price allocation period;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">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</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Charges to our operating results resulting from revised estimates to restructure an acquired company</font><font style="font-family:'Symbol';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">s operations after we finalize the purchase price allocation period.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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:</font></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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="font-size:9.5pt;">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;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Longer collection time from foreign clients, particularly in the EMEA region and the Asia Pacific region;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Difficulty in repatriating cash from certain foreign jurisdictions;</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">36</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Language barriers, conflicting international business practices, and other difficulties related to the management and administration of a global business;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Increased management, travel, infrastructure and legal compliance costs associated with having international operations;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Difficulties and costs of staffing and managing geographically disparate direct and indirect operations;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Volatility or fluctuations in foreign currency and tariff rates;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Multiple, and possibly overlapping, tax structures;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Complying with complicated and widely differing global laws and regulations in areas such as employment, tax, privacy and data protection;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Trade restrictions;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Enhanced security procedures and requirements relating to certain jurisdictions;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">The need to consider characteristics unique to technology systems used internationally;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Economic or political instability in some markets; and</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Other risk factors set out herein.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> time and attention and potential damage to our reputation.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">Increases in fuel prices and other transportation costs may have an adverse effect on the businesses of our customers resulting in them spending less money with us.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">37</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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. 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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">38</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">existing and potential customers to move to competitors</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> products. Such equipment supply issues could adversely affect our business, results of operations and financial condition.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><font style="font-size:9.5pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">39</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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:</font></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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Volatility or fluctuations in foreign currency exchange rates;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Volatility or fluctuations in interest rates;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Timing of acquisitions and related costs;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Timing of restructuring activities;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">The introduction of enhanced products and services from competitors;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Our ability to introduce new products and updates to our existing products on a timely basis;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">The termination of any key customer contracts, whether by the customer or by us;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Recognition and expensing of deferred tax assets;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Legal costs incurred in bringing or defending any litigation with customers or third-party providers, and any corresponding judgments or awards;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Legal and compliance costs incurred to comply with regulatory requirements;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Fluctuations in the demand for our services and products;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">The impact of stock-based compensation expense;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Price and functionality competition in our industry;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Changes in legislation and accounting standards;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Our ability to satisfy contractual obligations in customer contracts and deliver services and products to the satisfaction of our customers; and</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Other risk factors discussed in this report.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;font-style:italic;font-weight:bold;">We may not be able to prevent or detect all errors or fraud.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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 </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">material weaknesses</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;">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</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">40</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8217;</font><font style="font-size:9.5pt;"> ability or desire to collect, use, process and store shipment logistics information, which could reduce demand for our products.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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:</font></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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Revenue or results of operations in any quarter failing to meet the expectations, published or otherwise, of the investment community;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Changes in recommendations or financial estimates by industry or investment analysts;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Changes in management or the composition of our board of directors;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Outcomes of litigation or arbitration proceedings;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Announcements of technological innovations or acquisitions by us or by our competitors;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Introduction of new products or significant customer wins or losses by us or by our competitors;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Developments with respect to our intellectual property rights or those of our competitors;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Fluctuations in the share prices of other companies in the technology and emerging growth sectors;</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:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">General market conditions; and</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;"><font style="font-size:9.5pt;">Other risk factors set out in this report.</font></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">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</font></p><p style="font-family:'Arial','Helvetica','sans-serif';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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">41</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="margin-top:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">annually for evidence of impairment. In accordance with ASC Topic 360-10-35, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Property, Plant, and Equipment: Overview: Subsequent Measurement</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;"> 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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;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.</font></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><font style="font-size:9.5pt;">We account for goodwill in accordance with ASC Topic 350, </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8220;</font><font style="font-size:9.5pt;">Intangibles </font><font style="font-family:'Verdana';font-size:9.5pt;">&#8211;</font><font style="font-size:9.5pt;"> Goodwill and Other</font><font style="font-family:'Verdana';font-size:9.5pt;">&#8221;</font><font style="font-size:9.5pt;">, which among other things, requires that goodwill be tested for impairment at least annually. We have designated October 31</font><sup style="font-size:7.12pt;vertical-align:top;">st</sup><font style="font-size:9.5pt;"> 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.</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:24pt 0pt 12pt 0pt;">42</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-99.4
<SEQUENCE>5
<FILENAME>dsgx-20220131xex99d4.htm
<DESCRIPTION>EXHIBIT-99.4
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.14.0.96--><!--Created on: 4/14/2022 05:57:35 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:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">EXHIBIT 99.4</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Consent of Independent Registered Public Accounting Firm</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">The Board of Directors<br>The Descartes Systems Group Inc.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">We consent to the use of:</p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">our report dated March 2, 2022 on the consolidated financial statements of The Descartes Systems Group Inc. (the <font style="font-family:'Symbol';">&#8220;</font>Company<font style="font-family:'Symbol';">&#8221;</font>), which comprise the consolidated balance sheets as of January 31, 2022 and 2021, the related consolidated statements of operations, comprehensive income, shareholders<font style="font-family:'Symbol';">&#8217;</font> equity, and cash flows for each of the years in the three-year period ended January 31, 2022, and the related notes (collectively, the <font style="font-family:'Symbol';">&#8220;</font>consolidated financial statements<font style="font-family:'Symbol';">&#8221;</font>), and</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">our report dated March 2, 2022 on the effectiveness of the Company<font style="font-family:'Symbol';">&#8217;</font>s internal control over financial reporting as of January 31, 2022 </p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 6pt 0pt;">each of which is included in the Annual Report on Form 40-F of the Company for the fiscal year ended January 31, 2022.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">We also consent to the incorporation by reference of such reports in the Registration Statement (No. 333-239754) on Form F-10/A and the Registration Statement (No. 333-255087) on Form S-8 of the Company.</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;table-layout:auto;width:100%;" align="center"><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;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:top;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;width:48.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;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></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;">/s/ KPMG LLP</p></td><td style="vertical-align:top;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:48.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:48.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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;">Chartered Professional Accountants, Licensed Public Accountants</p></td><td style="vertical-align:top;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:48.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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;">April 14, 2022</p></td><td style="vertical-align:top;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:48.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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;">Toronto, Canada</p></td><td style="vertical-align:top;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:48.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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-99.5
<SEQUENCE>6
<FILENAME>dsgx-20220131xex99d5.htm
<DESCRIPTION>EXHIBIT-99.5
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.14.0.96--><!--Created on: 4/14/2022 05:57:37 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:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">EXHIBIT 99.5</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">CERTIFICATION PURSUANT TO RULE 13a-14 or 15d-14 OF THE</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">SECURITIES EXCHANGE ACT OF 1934, AS ADOPTED PURSUANT TO</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">I, Edward J. Ryan, certify that:</p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">1.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">I have reviewed this annual report on Form 40-F of The Descartes Systems Group Inc.;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">2.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">3.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">Based on my knowledge, the financial statements and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the issuer as of, and for, the periods presented in this report;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">4.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">The issuer&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the issuer and have:</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(a)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the issuer, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(b)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(c)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">Evaluated the effectiveness of the issuer&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(d)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">Disclosed in this report any change in the issuer&#8217;s internal control over financial reporting that occurred during the period covered by this report that has materially affected, or is reasonably likely to materially affect, the issuer&#8217;s internal control over financial reporting; and</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">5.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">The issuer&#8217;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the issuer&#8217;s auditors and the audit committee of the issuer&#8217;s board of directors (or persons performing the equivalent functions):</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(a)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the issuer&#8217;s ability to record, process, summarize and report financial information; and</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(b)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the issuer&#8217;s internal control over financial reporting.</p></td></tr></table><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:60%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';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.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;width:6.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;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;width:30.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;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:60%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Dated: April 14, 2022</p></td><td style="vertical-align:bottom;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:6.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:30.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:6.5%;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:bottom;width:30.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">/s/ Edward J. Ryan</p></td></tr><tr><td style="vertical-align:bottom;width:60%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:6.5%;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:bottom;width:30.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Edward J. Ryan Title:</p></td></tr><tr><td style="vertical-align:bottom;width:60%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:6.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:30.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Chief Executive Officer</p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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-99.6
<SEQUENCE>7
<FILENAME>dsgx-20220131xex99d6.htm
<DESCRIPTION>EXHIBIT-99.6
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.14.0.96--><!--Created on: 4/14/2022 05:57:39 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:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">EXHIBIT 99.6</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">CERTIFICATION PURSUANT TO RULE 13a-14 or 15d-14 OF THE</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">SECURITIES EXCHANGE ACT OF 1934, AS ADOPTED PURSUANT TO</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">I, Allan Brett, certify that:</p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">1.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">I have reviewed this annual report on Form 40-F of The Descartes Systems Group Inc.;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">2.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">3.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">Based on my knowledge, the financial statements and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the issuer as of, and for, the periods presented in this report;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">4.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">The issuer&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the issuer and have:</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(a)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the issuer, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(b)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(c)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">Evaluated the effectiveness of the issuer&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(d)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">Disclosed in this report any change in the issuer&#8217;s internal control over financial reporting that occurred during the period covered by this report that has materially affected, or is reasonably likely to materially affect, the issuer&#8217;s internal control over financial reporting; and</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">5.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">The issuer&#8217;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the issuer&#8217;s auditors and the audit committee of the issuer&#8217;s board of directors (or persons performing the equivalent functions):</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(a)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the issuer&#8217;s ability to record, process, summarize and report financial information; and</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:36pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">(b)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;text-align:justify;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the issuer&#8217;s internal control over financial reporting.</p></td></tr></table><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:60%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td><td style="vertical-align:bottom;width:2.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td><td style="vertical-align:bottom;width:6.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;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;width:30.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;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:60%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Dated: April 14, 2022</p></td><td style="vertical-align:bottom;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:6.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:30.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:60%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:6.5%;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:bottom;width:30.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">/s/ Allan Brett</p></td></tr><tr><td style="vertical-align:bottom;width:60%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:6.5%;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:bottom;width:30.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Allan Brett</p></td></tr><tr><td style="vertical-align:bottom;width:60%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:2.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:6.5%;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:bottom;width:30.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Chief Executive Officer</p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></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-99.7
<SEQUENCE>8
<FILENAME>dsgx-20220131xex99d7.htm
<DESCRIPTION>EXHIBIT-99.7
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.14.0.96--><!--Created on: 4/14/2022 05:57:42 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:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">EXHIBIT 99.7</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">CERTIFICATION PURSUANT TO</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">18 U.S.C. SECTION 1350,</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> AS ADOPTED PURSUANT TO</b></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;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">In connection with the annual report of The Descartes Systems Group Inc., a Canadian company and foreign private issuer (the &#8220;<u style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Company</u>&#8221;), on Form 40-F for the fiscal year ended January 31, 2022, as filed with the Securities and Exchange Commission on the date hereof (the &#8220;<u style="text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Report</u>&#8221;), we, Edward J. Ryan and Allan Brett, do hereby certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, to our knowledge, that:</p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">1.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:6pt;margin-top:0pt;">This Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:text-top;white-space:nowrap;width:36pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">2.</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">The information contained in this Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</p></td></tr></table><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;table-layout:auto;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';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:49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">/s/ Edward J. Ryan</p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:49%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Edward J. Ryan</p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Chief Executive Officer</p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">/s/ Allan Brett</p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:49%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Allan Brett Chief Financial Officer</p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">April 14, 2022</p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 6pt 0pt;">This certification is being submitted solely for the purpose of complying with Section 1350 of Chapter 63 of Title 18 of the United States Code. This certification is not to be deemed &#8220;filed&#8221; for purposes of Section 18 of the Securities Exchange Act of 1934 or otherwise subject to the liability of that section, nor will the certification be deemed incorporated by reference into any filing under the Securities Act of 1933 or the Securities Exchange Act of 1934, except to the extent that the Registrant specifically incorporates it by reference.</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>9
<FILENAME>dsgx-20220131.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  9.6.8119.21675 -->
<!--Based on XBRL 2.1-->
<!--Created on: 4/14/2022 5:56:39 PM-->
<!--Modified on: 4/14/2022 5:56:39 PM-->
<xsd:schema targetNamespace="http://www.descartes.com/20220131" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:deprecated="http://www.xbrl.org/2009/role/deprecated" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:us-roles="http://fasb.org/us-roles/2021-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2021" 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" xmlns:dsgx="http://www.descartes.com/20220131">
  <xsd:annotation>
    <xsd:appinfo>
      <link:roleType roleURI="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" id="StatementConsolidatedBalanceSheets">
        <link:definition>00100 - Statement - 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/StatementConsolidatedStatementsOfOperations" id="StatementConsolidatedStatementsOfOperations">
        <link:definition>00200 - Statement - 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/StatementConsolidatedStatementsOfComprehensiveIncome" id="StatementConsolidatedStatementsOfComprehensiveIncome">
        <link:definition>00300 - Statement - 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/StatementConsolidatedStatementsOfCashFlows" id="StatementConsolidatedStatementsOfCashFlows">
        <link:definition>00500 - Statement - 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/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" id="DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails">
        <link:definition>40801 - Disclosure - Property and Equipment - 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/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" id="DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails">
        <link:definition>41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets 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/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/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/StatementConsolidatedBalanceSheetsParentheticals" id="StatementConsolidatedBalanceSheetsParentheticals">
        <link:definition>00105 - Statement - 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/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" id="StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals">
        <link:definition>00305 - Statement - 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/StatementConsolidatedStatementsOfShareholdersEquity" id="StatementConsolidatedStatementsOfShareholdersEquity">
        <link:definition>00400 - Statement - 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/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/DisclosureSubsequentEvent" id="DisclosureSubsequentEvent">
        <link:definition>12301 - Disclosure - Subsequent Event</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/DisclosureBasisOfPresentationTables" id="DisclosureBasisOfPresentationTables">
        <link:definition>30203 - Disclosure - Basis of Presentation (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/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/DisclosureShareCapitalTables" id="DisclosureShareCapitalTables">
        <link:definition>31503 - Disclosure - Share Capital (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/DisclosureIncomeTaxesTables" id="DisclosureIncomeTaxesTables">
        <link:definition>31803 - Disclosure - Income Taxes (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/DisclosureBasisOfPresentationDetails" id="DisclosureBasisOfPresentationDetails">
        <link:definition>40201 - Disclosure - Basis of Presentation (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/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/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals" id="DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals">
        <link:definition>40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (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/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/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/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/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/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/DisclosureShareCapitalCommonSharesOutstandingDetails" id="DisclosureShareCapitalCommonSharesOutstandingDetails">
        <link:definition>41502 - Disclosure - Share Capital - Common Shares Outstanding (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/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/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" id="DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails">
        <link:definition>41705 - Disclosure - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (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/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" id="DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails">
        <link:definition>41707 - 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/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" id="DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails">
        <link:definition>41708 - 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/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" id="DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails">
        <link:definition>41709 - 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/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" id="DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails">
        <link:definition>41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (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/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" id="DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails">
        <link:definition>41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (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/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" id="DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails">
        <link:definition>41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (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/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" id="DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails">
        <link:definition>41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (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/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" id="DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails">
        <link:definition>41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (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>41807 - 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/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/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details" id="DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details">
        <link:definition>41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 1 (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/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details" id="DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details">
        <link:definition>41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 2 (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/DisclosureContractBalancesPerformanceObligationsAndContractCosts2DefaultDetails" id="DisclosureContractBalancesPerformanceObligationsAndContractCosts2DefaultDetails">
        <link:definition>41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 2 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/DisclosureOtherChargesRestructuringProvisionDetails" id="DisclosureOtherChargesRestructuringProvisionDetails">
        <link:definition>42002 - Disclosure - Other Charges - Restructuring Provision (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/DisclosureOtherChargesAdditionalInformationDetails" id="DisclosureOtherChargesAdditionalInformationDetails">
        <link:definition>42003 - Disclosure - Other Charges - 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/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/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:roleType roleURI="http://www.descartes.com/role/DisclosureSubsequentEventDetails" id="DisclosureSubsequentEventDetails">
        <link:definition>42301 - Disclosure - Subsequent Event (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-20220131_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-20220131_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-20220131_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-20220131_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/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="AfterTaxYear2026Member" id="dsgx_AfterTaxYear2026Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="AljexSoftwareIncMember" id="dsgx_AljexSoftwareIncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" 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="AsiaPacificIncomeTaxAuthorityMember" id="dsgx_AsiaPacificIncomeTaxAuthorityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="BaseAnnualFeePercent" id="dsgx_BaseAnnualFeePercent" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="BesttransportMember" id="dsgx_BesttransportMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <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="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" id="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" 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="COREKontainersAndShipTrackMember" id="dsgx_COREKontainersAndShipTrackMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <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="CashSettledRestrictedShareUnitsVestingPeriod" id="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CashsettledRestrictedSharePlanMember" id="dsgx_CashsettledRestrictedSharePlanMember" 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" abstract="true" nillable="true" 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="CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" id="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" type="xbrli:durationItemType" substitutionGroup="xbrli:item" 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="DeferredTaxAssetsCorporateMinimumTaxes" id="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="DeferredTaxAssetsLiabilitesNet1" id="dsgx_DeferredTaxAssetsLiabilitesNet1" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="DeferredTaxAssetsNetBeforeValuationAllowance" id="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <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="DirectorsAndOfficersMember" id="dsgx_DirectorsAndOfficersMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" id="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="EmeaIncomeTaxAuthorityMember" id="dsgx_EmeaIncomeTaxAuthorityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <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="Fiscal2021RestructuringPlanMember" id="dsgx_Fiscal2021RestructuringPlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="IncomeBeforeTaxesPercent" id="dsgx_IncomeBeforeTaxesPercent" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" 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="KontainersMember" id="dsgx_KontainersMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" 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="NotesToFinancialStatementsAbstract" id="dsgx_NotesToFinancialStatementsAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="OtherCountriesMember" id="dsgx_OtherCountriesMember" type="dtr-types:domainItemType" 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="OverallotmentOption" id="dsgx_OverallotmentOption" type="dtr-types:percentItemType" 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="PeoplevoxMember" id="dsgx_PeoplevoxMember" 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="ProceedsFromIssuanceOfCommonStockNet" id="dsgx_ProceedsFromIssuanceOfCommonStockNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" 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="Range1Member" id="dsgx_Range1Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="Range2Member" id="dsgx_Range2Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="Range3Member" id="dsgx_Range3Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="Range4Member" id="dsgx_Range4Member" 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="ShareCapitalTextBlock" id="dsgx_ShareCapitalTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ShareholderapprovedStockOptionPlanMember" id="dsgx_ShareholderapprovedStockOptionPlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" 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="ShipTrackMember" id="dsgx_ShipTrackMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="StepcomMember" id="dsgx_StepcomMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" id="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" type="xbrli:sharesItemType" 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="TaxYear2022Member" id="dsgx_TaxYear2022Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="TaxYear2023Member" id="dsgx_TaxYear2023Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="TaxYear2024Member" id="dsgx_TaxYear2024Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="TaxYear2025Member" id="dsgx_TaxYear2025Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="TaxYear2026Member" id="dsgx_TaxYear2026Member" 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="TheAccountingStandardsUpdate201616Member" id="dsgx_TheAccountingStandardsUpdate201616Member" 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="VitaDexSolutionsLLCMember" id="dsgx_VitaDexSolutionsLLCMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" id="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement--note-8-property-and-equipment-tables" id="dsgx_statement-statement--note-8-property-and-equipment-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-10-goodwill-goodwill-details" id="dsgx_statement-statement-note-10-goodwill-goodwill-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-10-goodwill-tables" id="dsgx_statement-statement-note-10-goodwill-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" id="dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-11-accrued-liabilities-tables" id="dsgx_statement-statement-note-11-accrued-liabilities-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-13-leases-components-of-operating-lease-expense-details" id="dsgx_statement-statement-note-13-leases-components-of-operating-lease-expense-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details" id="dsgx_statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-13-leases-tables" id="dsgx_statement-statement-note-13-leases-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-15-share-capital-common-shares-outstanding-details" id="dsgx_statement-statement-note-15-share-capital-common-shares-outstanding-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-15-share-capital-tables" id="dsgx_statement-statement-note-15-share-capital-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" id="dsgx_statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-16-earnings-per-share-tables" id="dsgx_statement-statement-note-16-earnings-per-share-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-17-stockbased-compensation-plans-tables" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" id="dsgx_statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" id="dsgx_statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" id="dsgx_statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" id="dsgx_statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" id="dsgx_statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" id="dsgx_statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-18-income-taxes-tables" id="dsgx_statement-statement-note-18-income-taxes-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" id="dsgx_statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-20-other-charges-restructuring-provision-details" id="dsgx_statement-statement-note-20-other-charges-restructuring-provision-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-20-other-charges-tables" id="dsgx_statement-statement-note-20-other-charges-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" id="dsgx_statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-21-supplemental-cash-flow-information-tables" id="dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" id="dsgx_statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" id="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" id="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-22-segmented-information-tables" id="dsgx_statement-statement-note-22-segmented-information-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" id="dsgx_statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" id="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" id="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details" id="dsgx_statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-3-acquisitions-tables" id="dsgx_statement-statement-note-3-acquisitions-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" id="dsgx_statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-4-fair-value-measurements-tables" id="dsgx_statement-statement-note-4-fair-value-measurements-tables" type="xbrli:stringItemType" 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="statement-statement-note-6-other-receivables-tables" id="dsgx_statement-statement-note-6-other-receivables-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-8-property-and-equipment-property-and-equipment-details" id="dsgx_statement-statement-note-8-property-and-equipment-property-and-equipment-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-9-intangible-assets-intangible-assets-details" id="dsgx_statement-statement-note-9-intangible-assets-intangible-assets-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-9-intangible-assets-tables" id="dsgx_statement-statement-note-9-intangible-assets-tables" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-significant-accounting-policies-policies" id="dsgx_statement-statement-significant-accounting-policies-policies" 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="StatementSignificantAccountingPoliciesTablesAbstract" id="dsgx_StatementSignificantAccountingPoliciesTablesAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" id="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" id="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" abstract="false" 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="AdjustmentForRoundingMember" id="dsgx_AdjustmentForRoundingMember" 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>10
<FILENAME>dsgx-20220131_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.8119.21675 -->
<!--Based on XBRL 2.1-->
<!--Created on: 4/14/2022 5:56:39 PM-->
<!--Modified on: 4/14/2022 5:56:39 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-20220131.xsd#StatementConsolidatedBalanceSheets" roleURI="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfOperations" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfComprehensiveIncome" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfCashFlows" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureTradeAccountsReceivableTradeReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIntangibleAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAccruedLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherChargesComponentsOfOtherChargesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <calculationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" xlink:type="extended" xlink:title="00100 - Statement - 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_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_637855557960222810" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_637855557960222810" 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_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_637855557960222810" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_637855557960222810" 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_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_637855557960222810" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_637855557960222810" 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_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_637855557960222810" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_637855557960222810" 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_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent_637855557960222810" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_AssetsCurrent_637855557960222810" 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_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent_637855557960232809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637855557960222810" xlink:to="us-gaap_AccountsReceivableNetCurrent_637855557960232809" 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_637855557960232809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637855557960222810" xlink:to="us-gaap_OtherReceivablesNetCurrent_637855557960232809" 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_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_637855557960232809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637855557960222810" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_637855557960232809" 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_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_637855557960232809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637855557960222810" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_637855557960232809" 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_InventoryNet" xlink:label="us-gaap_InventoryNet_637855557960232809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637855557960222810" xlink:to="us-gaap_InventoryNet_637855557960232809" 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_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent_637855557960232809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_OtherAssetsNoncurrent_637855557960232809" 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_Goodwill" xlink:label="us-gaap_Goodwill_637855557960232809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_Goodwill_637855557960232809" 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_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_637855557960232809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities_637855557960232809" 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_637855557960242808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637855557960232809" xlink:to="us-gaap_LiabilitiesCurrent_637855557960242808" 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_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_637855557960242808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637855557960242808" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_637855557960242808" 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_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_637855557960242808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637855557960242808" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_637855557960242808" 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_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_637855557960242808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637855557960242808" xlink:to="us-gaap_AccruedIncomeTaxesCurrent_637855557960242808" 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_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent_637855557960242808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637855557960242808" xlink:to="us-gaap_AccountsPayableCurrent_637855557960242808" 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_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent_637855557960242808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637855557960242808" xlink:to="us-gaap_AccruedLiabilitiesCurrent_637855557960242808" 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_637855557960242808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637855557960232809" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_637855557960242808" 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_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent_637855557960242808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637855557960232809" xlink:to="us-gaap_DeferredRevenueNoncurrent_637855557960242808" 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_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent_637855557960252809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637855557960232809" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent_637855557960252809" 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_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent_637855557960252809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637855557960232809" xlink:to="us-gaap_LongTermDebtNoncurrent_637855557960252809" 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_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_637855557960252809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637855557960232809" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_637855557960252809" 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_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_637855557960252809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity_637855557960252809" 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_CommonStockValue" xlink:label="us-gaap_CommonStockValue_637855557960252809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637855557960252809" xlink:to="us-gaap_CommonStockValue_637855557960252809" 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_637855557960252809" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637855557960252809" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_637855557960252809" 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_637855557960262808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637855557960252809" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_637855557960262808" 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_637855557960262808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637855557960252809" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_637855557960262808" order="4" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" xlink:type="extended" xlink:title="00200 - Statement - 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_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_637855557960262808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637855557960262808" 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_637855557960262808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit_637855557960262808" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_637855557960262808" 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_637855557960262808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit_637855557960262808" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_637855557960262808" 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_637855557960262808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637855557960262808" 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_637855557960262808" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637855557960262808" xlink:to="us-gaap_InterestExpense_637855557960262808" 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_637855557960272814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637855557960262808" xlink:to="us-gaap_OperatingIncomeLoss_637855557960272814" 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_637855557960272814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637855557960262808" xlink:to="us-gaap_InvestmentIncomeNet_637855557960272814" 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_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_637855557960272814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="GrossProfit" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637855557960272814" 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_637855557960272814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="GrossProfit" xlink:to="us-gaap_CostOfGoodsAndServicesSold_637855557960272814" 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_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_637855557960272814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="us-gaap_ResearchAndDevelopmentExpense_637855557960272814" 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_637855557960272814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="us-gaap_GeneralAndAdministrativeExpense_637855557960272814" 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_637855557960272814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="us-gaap_SellingAndMarketingExpense_637855557960272814" 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_637855557960282839" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="us-gaap_AmortizationOfIntangibleAssets_637855557960282839" 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_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense_637855557960282839" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="us-gaap_OtherNonoperatingExpense_637855557960282839" order="5" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" xlink:type="extended" xlink:title="00300 - Statement - 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_637855557960282839" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax_637855557960282839" 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_637855557960282839" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTax_637855557960282839" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_637855557960282839" 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_637855557960282839" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_NetIncomeLoss_637855557960282839" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" xlink:type="extended" xlink:title="00500 - Statement - 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_637855557960282839" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_637855557960282839" 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_637855557960292824" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_637855557960292824" 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_637855557960292824" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_637855557960292824" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637855557960292824" 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_637855557960292824" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_637855557960292824" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637855557960292824" 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_637855557960292824" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_637855557960292824" 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_637855557960292824" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637855557960292824" xlink:to="us-gaap_ProceedsFromLinesOfCredit_637855557960292824" 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_637855557960292824" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637855557960292824" xlink:to="us-gaap_RepaymentsOfDebt_637855557960292824" 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_637855557960292824" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637855557960292824" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_637855557960292824" 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_637855557960292824" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637855557960292824" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_637855557960292824" 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_637855557960292824" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637855557960292824" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts_637855557960292824" 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_637855557960302844" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_637855557960302844" 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_637855557960302844" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637855557960302844" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital_637855557960302844" 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_637855557960302844" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637855557960302844" xlink:to="us-gaap_AmortizationOfIntangibleAssets_637855557960302844" 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_637855557960302844" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637855557960302844" xlink:to="us-gaap_NetIncomeLoss_637855557960302844" 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_637855557960302844" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637855557960302844" xlink:to="us-gaap_Depreciation_637855557960302844" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxCharges" xlink:label="dsgx_DeferredTaxCharges_637855557960302844" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637855557960302844" xlink:to="dsgx_DeferredTaxCharges_637855557960302844" 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_637855557960302844" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637855557960302844" xlink:to="us-gaap_OtherNoncashIncomeExpense_637855557960302844" 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_637855557960302844" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637855557960302844" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_637855557960302844" 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_637855557960312834" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637855557960302844" xlink:to="us-gaap_ShareBasedCompensation_637855557960312834" 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="AccountsReceivableNetCurrent" />
    <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_637855557960312834" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent_637855557960312834" 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_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637855557960312834" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AccountsReceivableNetCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637855557960312834" 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="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_637855557960312834" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OtherReceivablesNetCurrent" xlink:to="us-gaap_OtherAssetsCurrent_637855557960312834" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_637855557960312834" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OtherReceivablesNetCurrent" xlink:to="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_637855557960312834" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40801 - Disclosure - Property and Equipment - 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_637855557960322814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_637855557960322814" 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_637855557960322814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_637855557960322814" 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_637855557960322814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_637855557960322814" 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_637855557960322814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_637855557960322814" 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="AccruedLiabilitiesCurrent" />
    <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_637855557960322814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedProfessionalFeesCurrent_637855557960322814" 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_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_637855557960322814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_637855557960322814" 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_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_637855557960322814" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AccruedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_637855557960322814" 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_637855557960332812" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LeaseCost" xlink:to="us-gaap_OperatingLeaseCost_637855557960332812" 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_637855557960332812" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LeaseCost" xlink:to="us-gaap_ShortTermLeaseCost_637855557960332812" 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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637855557960332812" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637855557960332812" 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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637855557960332812" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637855557960332812" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637855557960332812" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637855557960332812" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637855557960332812" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637855557960332812" 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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_637855557960332812" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_637855557960332812" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_637855557960332812" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_637855557960332812" order="6" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" xlink:type="extended" xlink:title="41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:label="DeferredTaxAssetsLiabilitesNet1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_637855557960342811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsLiabilitesNet1" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_637855557960342811" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_637855557960342811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsLiabilitesNet1" xlink:to="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_637855557960342811" 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_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross_637855557960342811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_637855557960342811" xlink:to="us-gaap_DeferredTaxAssetsGross_637855557960342811" 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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_637855557960342811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637855557960342811" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_637855557960342811" 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_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_637855557960342811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637855557960342811" xlink:to="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_637855557960342811" 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_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_637855557960342811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637855557960342811" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_637855557960342811" 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_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_637855557960342811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637855557960342811" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_637855557960342811" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes_637855557960342811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross_637855557960342811" xlink:to="dsgx_DeferredTaxAssetsCorporateMinimumTaxes_637855557960342811" 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_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities_637855557960352811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_637855557960342811" xlink:to="us-gaap_DeferredIncomeTaxLiabilities_637855557960352811" 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_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_637855557960352811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities_637855557960352811" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_637855557960352811" 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_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_637855557960352811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities_637855557960352811" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_637855557960352811" 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_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_637855557960352811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities_637855557960352811" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_637855557960352811" order="3" 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_OtherNonoperatingExpense" xlink:label="OtherNonoperatingExpense" />
    <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_637855557960352811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OtherNonoperatingExpense" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637855557960352811" 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_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges_637855557960352811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OtherNonoperatingExpense" xlink:to="us-gaap_RestructuringCharges_637855557960352811" 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_637855557960352811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OtherNonoperatingExpense" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_637855557960352811" 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="IncreaseDecreaseInOperatingCapital" />
    <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_637855557960362811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInInventories_637855557960362811" 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_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_637855557960362811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_637855557960362811" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_637855557960362811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncreaseDecreaseInOperatingCapital" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_637855557960362811" 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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637855557960362811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637855557960362811" 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_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_637855557960362811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_637855557960362811" 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_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_637855557960362811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables_637855557960362811" 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_637855557960362811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes_637855557960362811" 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_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_637855557960362811" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_637855557960362811" 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_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_637855557960372813" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities_637855557960372813" order="9" use="optional" weight="-1" />
  </calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>11
<FILENAME>dsgx-20220131_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.8119.21675 -->
<!--Based on XBRL 2.1-->
<!--Created on: 4/14/2022 5:56:39 PM-->
<!--Modified on: 4/14/2022 5:56:39 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-20220131.xsd#DocumentDocumentAndEntityInformation" roleURI="http://www.descartes.com/role/DocumentDocumentAndEntityInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedBalanceSheets" roleURI="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedBalanceSheetsParentheticals" roleURI="http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfOperations" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfComprehensiveIncome" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfShareholdersEquity" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfCashFlows" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureDescriptionOfBusiness" roleURI="http://www.descartes.com/role/DisclosureDescriptionOfBusiness" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureBasisOfPresentation" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitions" roleURI="http://www.descartes.com/role/DisclosureAcquisitions" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureFairValueMeasurements" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurements" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureTradeAccountsReceivable" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherReceivables" roleURI="http://www.descartes.com/role/DisclosureOtherReceivables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureInventory" roleURI="http://www.descartes.com/role/DisclosureInventory" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosurePropertyAndEquipment" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIntangibleAssets" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureGoodwill" roleURI="http://www.descartes.com/role/DisclosureGoodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAccruedLiabilities" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLongTermDebt" roleURI="http://www.descartes.com/role/DisclosureLongTermDebt" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeases" roleURI="http://www.descartes.com/role/DisclosureLeases" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureCommitmentsContingenciesAndGuarantees" roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureShareCapital" roleURI="http://www.descartes.com/role/DisclosureShareCapital" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureEarningsPerShare" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShare" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlans" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlans" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxes" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCosts" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherCharges" roleURI="http://www.descartes.com/role/DisclosureOtherCharges" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSupplementalCashFlowInformation" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformation" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSubsequentEvent" roleURI="http://www.descartes.com/role/DisclosureSubsequentEvent" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureBasisOfPresentationPolicies" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureBasisOfPresentationTables" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsTables" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureFairValueMeasurementsTables" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureTradeAccountsReceivableTables" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherReceivablesTables" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosurePropertyAndEquipmentTables" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIntangibleAssetsTables" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureGoodwillTables" roleURI="http://www.descartes.com/role/DisclosureGoodwillTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAccruedLiabilitiesTables" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeasesTables" roleURI="http://www.descartes.com/role/DisclosureLeasesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureShareCapitalTables" roleURI="http://www.descartes.com/role/DisclosureShareCapitalTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureEarningsPerShareTables" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansTables" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesTables" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherChargesTables" roleURI="http://www.descartes.com/role/DisclosureOtherChargesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSupplementalCashFlowInformationTables" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformationTables" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureBasisOfPresentationDetails" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsProFormaResultsOfOperationsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureTradeAccountsReceivableTradeReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureTradeAccountsReceivableDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherReceivablesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIntangibleAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIntangibleAssetsAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureGoodwillDetails" roleURI="http://www.descartes.com/role/DisclosureGoodwillDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAccruedLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLongTermDebtDetails" roleURI="http://www.descartes.com/role/DisclosureLongTermDebtDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeasesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureCommitmentsContingenciesAndGuaranteesDetails" roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureShareCapitalDetails" roleURI="http://www.descartes.com/role/DisclosureShareCapitalDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureShareCapitalCommonSharesOutstandingDetails" roleURI="http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCosts2DefaultDetails" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2DefaultDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherChargesComponentsOfOtherChargesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherChargesRestructuringProvisionDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherChargesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformationAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSubsequentEventDetails" roleURI="http://www.descartes.com/role/DisclosureSubsequentEventDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureStandardAndCustomAxisDomainDefaults" xlink:type="simple" xlink:href="dsgx-20220131.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.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_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_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/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_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_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.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_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_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_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_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/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: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_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/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/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/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis_1" xlink:title="srt_StatementScenarioAxis_1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain_1" xlink:title="srt_ScenarioUnspecifiedDomain_1" />
    <link:definitionArc xlink:type="arc" xlink:from="srt_StatementScenarioAxis_1" xlink:to="srt_ScenarioUnspecifiedDomain_1" use="optional" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:title="definition:srt_StatementScenarioAxis_1 To srt_ScenarioUnspecifiedDomain_1" order="1" />
  </link:definitionLink>
  <definitionLink 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="dei_DocumentInformationTable" />
    <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="1" xlink:from="dei_DocumentInformationTable" 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_StatementClassOfStockAxis" xlink:label="us-gaap_StatementClassOfStockAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="dei_DocumentInformationTable" xlink:to="us-gaap_StatementClassOfStockAxis" use="optional" />
    <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" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_StatementClassOfStockAxis" xlink:to="us-gaap_ClassOfStockDomain" 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_ClassOfStockDomain" xlink:to="us-gaap_CommonStockMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_RightsToPurchaseCommonSharesMember" xlink:label="dsgx_RightsToPurchaseCommonSharesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ClassOfStockDomain" xlink:to="dsgx_RightsToPurchaseCommonSharesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressesAddressTypeAxis" xlink:label="dei_EntityAddressesAddressTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="dei_DocumentInformationTable" xlink:to="dei_EntityAddressesAddressTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AddressTypeDomain" xlink:label="dei_AddressTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="dei_EntityAddressesAddressTypeAxis" xlink:to="dei_AddressTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_BusinessContactMember" xlink:label="dei_BusinessContactMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="dei_AddressTypeDomain" xlink:to="dei_BusinessContactMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentType" xlink:label="dei_DocumentType" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentType" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentRegistrationStatement" xlink:label="dei_DocumentRegistrationStatement" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentRegistrationStatement" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentAnnualReport" xlink:label="dei_DocumentAnnualReport" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentAnnualReport" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentPeriodEndDate" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFileNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityRegistrantName" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityIncorporationStateCountryCode" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_ContactPersonnelName" xlink:label="dei_ContactPersonnelName" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_ContactPersonnelName" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressAddressLine1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressAddressLine2" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressAddressLine3" xlink:label="dei_EntityAddressAddressLine3" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressAddressLine3" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressCityOrTown" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressStateOrProvince" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressCountry" xlink:label="dei_EntityAddressCountry" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressCountry" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressPostalZipCode" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CityAreaCode" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_LocalPhoneNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="19" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_Security12bTitle" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="20" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_TradingSymbol" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="21" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_SecurityExchangeName" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AnnualInformationForm" xlink:label="dei_AnnualInformationForm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="22" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AnnualInformationForm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditedAnnualFinancialStatements" xlink:label="dei_AuditedAnnualFinancialStatements" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="23" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AuditedAnnualFinancialStatements" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="24" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCommonStockSharesOutstanding" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="25" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCurrentReportingStatus" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="26" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityInteractiveDataCurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="27" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityEmergingGrowthCompany" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorName" xlink:label="dei_AuditorName" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="28" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AuditorName" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorFirmId" xlink:label="dei_AuditorFirmId" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="29" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AuditorFirmId" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorLocation" xlink:label="dei_AuditorLocation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="30" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AuditorLocation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="31" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCentralIndexKey" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="32" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CurrentFiscalYearEndDate" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="33" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalYearFocus" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="34" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalPeriodFocus" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="35" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AmendmentFlag" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="36" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFilerCategory" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="37" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityVoluntaryFilers" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="38" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityWellKnownSeasonedIssuer" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="39" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntitySmallBusiness" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="40" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityShellCompany" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" xlink:type="extended" xlink:title="00100 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" />
    <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_AssetsCurrentAbstract" 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_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" 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_AccountsReceivableNetAbstract" xlink:label="us-gaap_AccountsReceivableNetAbstract" />
    <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_AccountsReceivableNetAbstract" 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_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_AccountsReceivableNetCurrent" 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_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_OtherReceivablesNetCurrent" 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_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" 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_InventoryNet" xlink:label="us-gaap_InventoryNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_InventoryNet" 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_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_AssetsCurrent" 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_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" 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="7" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" 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_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" 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_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet" 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_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" 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_Goodwill" xlink:label="us-gaap_Goodwill" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_AccountsReceivableNetAbstract" 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_Assets" xlink:label="us-gaap_Assets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_Assets" 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_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" />
    <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_LiabilitiesCurrentAbstract" 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_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" 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_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrent" 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_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" 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_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedIncomeTaxesCurrent" 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_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" 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_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent" 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_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtNoncurrent" 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_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" 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_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredRevenueNoncurrent" 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_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent" 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_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" 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_Liabilities" xlink:label="us-gaap_Liabilities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_Liabilities" 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_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" 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_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" />
    <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_StockholdersEquityAbstract" 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_CommonStockValue" xlink:label="us-gaap_CommonStockValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" 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_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" 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_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" 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_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" 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_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_StockholdersEquityAbstract" 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_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals" xlink:type="extended" xlink:title="00105 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" />
    <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_CommonStockSharesIssued" 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_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" />
    <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_CommonStockSharesOutstanding" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" xlink:type="extended" xlink:title="00200 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_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_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" 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_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" />
    <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_CostOfGoodsAndServicesSold" 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_GrossProfit" xlink:label="us-gaap_GrossProfit" />
    <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_GrossProfit" 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_CostsAndExpensesAbstract" xlink:label="us-gaap_CostsAndExpensesAbstract" />
    <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_CostsAndExpensesAbstract" 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_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_SellingAndMarketingExpense" 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_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpense" 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_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_GeneralAndAdministrativeExpense" 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_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_OtherNonoperatingExpense" 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_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" 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_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_OperatingExpenses" 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_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_OperatingIncomeLoss" 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_InterestExpense" xlink:label="us-gaap_InterestExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_InterestExpense" 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_InvestmentIncomeNet" xlink:label="us-gaap_InvestmentIncomeNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_InvestmentIncomeNet" 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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" 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_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <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_IncomeTaxExpenseBenefitContinuingOperationsAbstract" 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_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit" 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_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" 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_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefit" 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="4" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" 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_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" 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="1" xlink:from="us-gaap_EarningsPerShareAbstract" 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="2" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" 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_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" 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="1" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" 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_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" xlink:type="extended" xlink:title="00300 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_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_StatementLineItems" 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_OtherComprehensiveIncomeLossTaxAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" />
    <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_OtherComprehensiveIncomeLossTaxAbstract" 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_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" 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_OtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax" 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_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" xlink:type="extended" xlink:title="00305 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" />
    <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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" xlink:type="extended" xlink:title="00400 - Statement - 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/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_StatementTable" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" 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_StockIssuedDuringPeriodValueNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues" />
    <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_StockIssuedDuringPeriodValueNewIssues" 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_StockIssuedDuringPeriodValueAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions" />
    <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_StockIssuedDuringPeriodValueAcquisitions" 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="6" 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="7" 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="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" xlink:type="extended" xlink:title="00500 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <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_NetCashProvidedByUsedInOperatingActivitiesAbstract" 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="1" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" 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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" 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_Depreciation" xlink:label="us-gaap_Depreciation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_Depreciation" 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_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" 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_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation" 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_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OtherNoncashIncomeExpense" 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_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxCharges" xlink:label="dsgx_DeferredTaxCharges" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="dsgx_DeferredTaxCharges" 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_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital" 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_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" 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_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" />
    <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_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" 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_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" 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_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_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" 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_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" 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_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" />
    <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_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" 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_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_ProceedsFromLinesOfCredit" 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_RepaymentsOfDebt" xlink:label="us-gaap_RepaymentsOfDebt" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_RepaymentsOfDebt" 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_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts" 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_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock" 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_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" 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_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" 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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" 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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" 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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" 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_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" />
    <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_SupplementalCashFlowInformationAbstract" 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_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_InterestPaidNet" 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_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_IncomeTaxesPaidNet" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" />
    <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_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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="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.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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_OtherReceivablesTextBlock" xlink:label="dsgx_OtherReceivablesTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="dsgx_OtherReceivablesTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_InventoryDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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="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.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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_GoodwillDisclosureTextBlock" xlink:label="us-gaap_GoodwillDisclosureTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_GoodwillDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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="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_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_StatementTable" 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-20220131.xsd#dsgx_COREKontainersAndShipTrackMember" xlink:label="dsgx_COREKontainersAndShipTrackMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_COREKontainersAndShipTrackMember" 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_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_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_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_StatementTable" 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-20220131.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-20220131.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="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_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareCapitalTextBlock" xlink:label="dsgx_ShareCapitalTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="dsgx_ShareCapitalTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_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_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_StatementTable" 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-20220131.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-20220131.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.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_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_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_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" />
    <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_RestructuringPlanAxis" use="optional" />
    <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="us-gaap_RestructuringPlanDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanDomain" 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_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureSubsequentEvent" xlink:type="extended" xlink:title="12301 - Disclosure - Subsequent Event" 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_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" />
    <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_SubsequentEventTypeAxis" use="optional" />
    <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="us-gaap_SubsequentEventTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" 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_StatementTable" 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-20220131.xsd#dsgx_VitaDexSolutionsLLCMember" xlink:label="dsgx_VitaDexSolutionsLLCMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VitaDexSolutionsLLCMember" 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_StatementTable" 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_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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" />
    <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_DisclosureTextBlockAbstract" 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_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SubsequentEventsTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" />
    <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_PolicyTextBlockAbstract" 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_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract" 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_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" 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_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConsolidationPolicyTextBlock" 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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" 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_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates" 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_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock" 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_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy" 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_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" 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_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_InventoryPolicyTextBlock" 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_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" 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_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" 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_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" 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_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock" 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_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" 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_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" 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_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" 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_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BusinessCombinationsPolicy" 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_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_IncomeTaxPolicyTextBlock" 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_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock" 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_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="19" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureBasisOfPresentationTables" xlink:type="extended" xlink:title="30203 - Disclosure - Basis of Presentation (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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" xlink:label="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TableTextBlock" xlink:to="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" 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_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" 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_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" 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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" />
    <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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" 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_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" />
    <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_AccountsReceivableAllowanceForCreditLossTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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="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.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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_OtherReceivablesTableTextBlock" xlink:label="dsgx_OtherReceivablesTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="dsgx_OtherReceivablesTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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="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.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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:label="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock" 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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureShareCapitalTables" xlink:type="extended" xlink:title="31503 - Disclosure - Share Capital (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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" 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_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" 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_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" 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_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" 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_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" 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_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" 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_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_TableTextBlock" xlink:to="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesTables" xlink:type="extended" xlink:title="31803 - Disclosure - Income Taxes (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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" 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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" 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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" 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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" 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_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" 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_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" 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_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" />
    <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_TableTextBlock" 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_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" 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_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" 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_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" xlink:type="extended" xlink:title="40201 - Disclosure - Basis of Presentation (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_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_StatementTable" 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-20220131.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/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="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_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_StatementTable" 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_EquipmentMember" xlink:label="us-gaap_EquipmentMember" />
    <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_EquipmentMember" use="optional" />
    <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="4" xlink:from="us-gaap_StatementTable" 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="dsgx-20220131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="dsgx_DeferredShareUnitPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CashsettledRestrictedSharePlanMember" xlink:label="dsgx_CashsettledRestrictedSharePlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="dsgx_CashsettledRestrictedSharePlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="5" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DirectorsAndOfficersMember" xlink:label="dsgx_DirectorsAndOfficersMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="dsgx_DirectorsAndOfficersMember" use="optional" />
    <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="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="6" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" use="optional" />
    <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="us-gaap_TypeOfAdoptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201409Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TheAccountingStandardsUpdate201616Member" xlink:label="dsgx_TheAccountingStandardsUpdate201616Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="dsgx_TheAccountingStandardsUpdate201616Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" 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="7" xlink:from="us-gaap_StatementTable" 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_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_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" />
    <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_ForeignCurrencyTransactionGainLossBeforeTax" 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_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss" />
    <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_GoodwillImpairmentLoss" 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_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" />
    <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_FiniteLivedIntangibleAssetUsefulLife" 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_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" />
    <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_PropertyPlantAndEquipmentUsefulLife" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BaseAnnualFeePercent" xlink:label="dsgx_BaseAnnualFeePercent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BaseAnnualFeePercent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" 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_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet" 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_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherAssetsNoncurrent" 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_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" 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_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" 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_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" 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_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" 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_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_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_StatementTable" 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-20220131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PeoplevoxMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_KontainersMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_ShipTrackMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_QuestawebMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PortrixMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GreenmileMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2021AcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Acquisitions2022Member" xlink:label="dsgx_Acquisitions2022Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_Acquisitions2022Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_StepcomMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BesttransportMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AljexSoftwareIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" 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_StatementTable" 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_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_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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" 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="13" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" 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_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_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_StatementTable" 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-20220131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PeoplevoxMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_KontainersMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_ShipTrackMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_QuestawebMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PortrixMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GreenmileMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2021AcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_StepcomMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BesttransportMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2020AcquisitionsMember" xlink:label="dsgx_The2020AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2020AcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AljexSoftwareIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2019AcquisitionsMember" xlink:label="dsgx_The2019AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2019AcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2022AcquisitionsMember" xlink:label="dsgx_The2022AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" 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_StatementTable" 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-20220131.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_StatementTable" 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_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_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_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" 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="9" xlink:from="us-gaap_StatementLineItems" 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="10" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_StatementLineItems" 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="13" xlink:from="us-gaap_StatementLineItems" 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="14" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_StatementLineItems" 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="16" xlink:from="us-gaap_StatementLineItems" 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_Goodwill" xlink:label="us-gaap_Goodwill" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="us-gaap_StatementLineItems" 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_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="us-gaap_StatementLineItems" 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="19" xlink:from="us-gaap_StatementLineItems" 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="20" xlink:from="us-gaap_StatementLineItems" 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="21" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals" xlink:type="extended" xlink:title="40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (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_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_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_StatementTable" 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-20220131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PeoplevoxMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_KontainersMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_ShipTrackMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_QuestawebMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PortrixMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GreenmileMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_StepcomMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BesttransportMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AljexSoftwareIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" 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_StatementTable" 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_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_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_StatementLineItems" 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_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_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_StatementTable" 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-20220131.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_StatementTable" 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-20220131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PeoplevoxMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_KontainersMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_ShipTrackMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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-20220131.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_QuestawebMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GreenmileMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_StepcomMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BesttransportMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AljexSoftwareIncMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" 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_StatementTable" 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_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_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_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue" />
    <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_BusinessAcquisitionsProFormaRevenue" 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_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" />
    <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_BusinessAcquisitionsProFormaNetIncomeLoss" 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_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" />
    <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_EarningsPerShareAbstract" 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_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" 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_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" 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.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="4" xlink:from="us-gaap_StatementTable" 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_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-20220131.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-20220131.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeGainOnDerivative" xlink:label="us-gaap_DerivativeGainOnDerivative" />
    <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_DerivativeGainOnDerivative" 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="5" 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_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_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_StatementTable" 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_StatementTable" 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.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_StatementTable" 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_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_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_StatementLineItems" 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_StatementLineItems" 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-20220131.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/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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" />
    <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_AccountsReceivableGrossCurrent" 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_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" />
    <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_AllowanceForDoubtfulAccountsReceivableCurrent" 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_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" />
    <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_AccountsReceivableNetCurrent" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_UnbilledReceivablesCurrent" xlink:label="us-gaap_UnbilledReceivablesCurrent" />
    <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_UnbilledReceivablesCurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PercentageOfAccountReceivable" xlink:label="dsgx_PercentageOfAccountReceivable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_PercentageOfAccountReceivable" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" />
    <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_AllowanceForDoubtfulAccountsReceivableCurrent" 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_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" />
    <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_ProvisionForDoubtfulAccounts" 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_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" />
    <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_AllowanceForDoubtfulAccountsReceivableWriteOffs" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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-20220131.xsd#dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" 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_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent" />
    <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_OtherAssetsCurrent" 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_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" />
    <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_OtherReceivablesNetCurrent" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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="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.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="1" xlink:from="us-gaap_StatementTable" 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_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-20220131.xsd#dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_AmountsRecoverableFromFundsHeldInEscrow" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40801 - Disclosure - Property and Equipment - 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_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_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_StatementTable" 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-20220131.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.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_StatementTable" 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_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_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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_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_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_StatementTable" 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.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_StatementTable" 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_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_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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" />
    <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_FiniteLivedIntangibleAssetsNet" 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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" 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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" 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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" />
    <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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" 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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" />
    <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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" 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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" 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_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" 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_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_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_StatementTable" 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-20220131.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-20220131.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-20220131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_StepcomMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BesttransportMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PeoplevoxMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_KontainersMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_ShipTrackMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_QuestawebMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PortrixMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GreenmileMember" 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_StatementTable" 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_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_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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent" />
    <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_EmployeeRelatedLiabilitiesCurrent" 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_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent" />
    <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_AccruedProfessionalFeesCurrent" 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_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" />
    <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_OtherAccruedLiabilitiesCurrent" 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_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" />
    <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_AccruedLiabilitiesCurrent" 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_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_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_StatementTable" 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-20220131.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-20220131.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-20220131.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_StatementTable" 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_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_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_StatementTable" 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-20220131.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.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="5" xlink:from="us-gaap_StatementTable" 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_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_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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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_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_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.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_StatementTable" 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_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_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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" />
    <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_OperatingLeaseCost" 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_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" />
    <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_ShortTermLeaseCost" 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_LeaseCost" xlink:label="us-gaap_LeaseCost" />
    <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_LeaseCost" 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_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" />
    <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_OperatingLeasePayments" 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_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" />
    <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_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" 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_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" 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_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" />
    <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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" />
    <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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" />
    <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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" 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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" 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_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" 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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" 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_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" 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_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" 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_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" 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_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_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_StatementTable" 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-20220131.xsd#dsgx_COREKontainersAndShipTrackMember" xlink:label="dsgx_COREKontainersAndShipTrackMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_COREKontainersAndShipTrackMember" 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_StatementTable" 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_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-20220131.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_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" 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_StatementLineItems" 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_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_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_StatementTable" 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-20220131.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-20220131.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="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_StatementTable" 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_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-20220131.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_StatementLineItems" xlink:to="dsgx_ShelfProspectusPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_OverallotmentOption" xlink:label="dsgx_OverallotmentOption" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_OverallotmentOption" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ProceedsFromIssuanceOfCommonStockNet" xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ProceedsFromIssuanceOfCommonStockNet" 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="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProceedsFromStockOptionsExercised" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails" xlink:type="extended" xlink:title="41502 - Disclosure - Share Capital - Common Shares Outstanding (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.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="1" xlink:from="us-gaap_StatementTable" 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_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_StatementTable" 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-20220131.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="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_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" />
    <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_CommonStockSharesOutstanding" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" 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="4" xlink:from="us-gaap_StatementLineItems" 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_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" />
    <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_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" 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_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_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_StatementTable" 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-20220131.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-20220131.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.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_StatementTable" 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_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_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_StatementLineItems" 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_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_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_StatementTable" 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.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_StatementTable" 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_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_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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" />
    <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_EarningsPerShareAbstract" 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="1" xlink:from="us-gaap_EarningsPerShareAbstract" 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="2" xlink:from="us-gaap_EarningsPerShareAbstract" 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_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_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_StatementTable" 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-20220131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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-20220131.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_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <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_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.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_StatementTable" 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_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_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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsGrantsInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsCompensationExpense" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" 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_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_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.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_StatementTable" 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_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_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_StatementLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" />
    <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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" />
    <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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" 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="6" xlink:from="us-gaap_StatementLineItems" 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" 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_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" 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="12" xlink:from="us-gaap_StatementLineItems" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_StatementLineItems" 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="14" xlink:from="us-gaap_StatementLineItems" 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="15" xlink:from="us-gaap_StatementLineItems" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="19" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" xlink:type="extended" xlink:title="41705 - Disclosure - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" />
    <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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" use="optional" />
    <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="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range1Member" xlink:label="dsgx_Range1Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="dsgx_Range1Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range2Member" xlink:label="dsgx_Range2Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="dsgx_Range2Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range3Member" xlink:label="dsgx_Range3Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="dsgx_Range3Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range4Member" xlink:label="dsgx_Range4Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="dsgx_Range4Member" 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_StatementTable" 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_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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" />
    <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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" />
    <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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" 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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" />
    <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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" />
    <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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" 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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" />
    <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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" 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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" 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_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_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_StatementTable" 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-20220131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember" 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_StatementTable" 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_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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" />
    <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_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="3" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" 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="4" xlink:from="us-gaap_StatementLineItems" 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="5" xlink:from="us-gaap_StatementLineItems" 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_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_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" 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="7" xlink:from="us-gaap_StatementLineItems" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" 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="9" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xlink:type="extended" xlink:title="41707 - 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_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_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_StatementTable" 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.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_StatementTable" 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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <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_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="3" xlink:from="us-gaap_StatementLineItems" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <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_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="5" xlink:from="us-gaap_StatementLineItems" 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="6" xlink:from="us-gaap_StatementLineItems" 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="7" xlink:from="us-gaap_StatementLineItems" 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="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_StatementLineItems" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_StatementLineItems" 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="11" xlink:from="us-gaap_StatementLineItems" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_StatementLineItems" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_StatementLineItems" 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="14" xlink:from="us-gaap_StatementLineItems" 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="15" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="19" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xlink:type="extended" xlink:title="41708 - 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_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_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_StatementTable" 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.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_StatementTable" 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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <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_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="3" xlink:from="us-gaap_StatementLineItems" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <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_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="5" xlink:from="us-gaap_StatementLineItems" 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="6" xlink:from="us-gaap_StatementLineItems" 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="7" xlink:from="us-gaap_StatementLineItems" 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="8" xlink:from="us-gaap_StatementLineItems" 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="9" xlink:from="us-gaap_StatementLineItems" 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_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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" xlink:type="extended" xlink:title="41709 - 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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-20220131.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsWeightedAverageContractualLife" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardsGrantsInPeriod" xlink:label="dsgx_CRSUAwardsGrantsInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsGrantsInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardsVestedAndSettledInCash" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsVestedAndSettledInCash" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardsForfeitedInPeriod" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsForfeitedInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardNonvestedNumber" xlink:label="dsgx_CRSUAwardNonvestedNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardNonvestedNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" xlink:type="extended" xlink:title="41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (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_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" />
    <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_IncomeTaxAuthorityAxis" use="optional" />
    <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="us-gaap_IncomeTaxAuthorityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" 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="1" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_CA" 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="2" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_US" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="dsgx_OtherCountriesMember" 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_StatementTable" 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_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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" xlink:type="extended" xlink:title="41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (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_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" />
    <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_IncomeTaxAuthorityAxis" use="optional" />
    <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="us-gaap_IncomeTaxAuthorityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" 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="1" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_CA" 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="2" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_US" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="dsgx_OtherCountriesMember" 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_StatementTable" 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_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_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" />
    <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_CurrentIncomeTaxExpenseBenefit" 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_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" />
    <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_DeferredIncomeTaxExpenseBenefit" 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_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <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_IncomeTaxExpenseBenefit" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" xlink:type="extended" xlink:title="41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" />
    <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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" 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_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" />
    <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_DeferredTaxAssetsOperatingLossCarryforwards" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" 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_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" />
    <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_DeferredTaxAssetsPropertyPlantAndEquipment" 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_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" />
    <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_DeferredTaxAssetsTaxCreditCarryforwardsResearch" 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_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsGross" 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_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" 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_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" 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_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesOther" 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_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" 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_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredTaxAssetsLiabilitesNet1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" xlink:type="extended" xlink:title="41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (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.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="1" xlink:from="us-gaap_StatementTable" 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/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementScenarioAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AdjustmentForRoundingMember" xlink:label="dsgx_AdjustmentForRoundingMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_ScenarioUnspecifiedDomain" xlink:to="dsgx_AdjustmentForRoundingMember" 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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" 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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
    <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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" 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_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" />
    <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_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" 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_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" />
    <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_IncomeTaxReconciliationNondeductibleExpenseAmortization" 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_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" />
    <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_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" 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_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" 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_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" 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_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" 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_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" 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_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments" 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_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" xlink:type="extended" xlink:title="41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (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_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis" />
    <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_IncomeTaxAuthorityNameAxis" use="optional" />
    <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="us-gaap_IncomeTaxAuthorityNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CanadaRevenueAgencyMember" xlink:label="us-gaap_CanadaRevenueAgencyMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="us-gaap_CanadaRevenueAgencyMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="us-gaap_InternalRevenueServiceIRSMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_EmeaIncomeTaxAuthorityMember" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="dsgx_EmeaIncomeTaxAuthorityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="dsgx_AsiaPacificIncomeTaxAuthorityMember" use="optional" />
    <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="us-gaap_IncomeTaxAuthorityAxis" />
    <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_IncomeTaxAuthorityAxis" use="optional" />
    <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="us-gaap_IncomeTaxAuthorityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_ForeignCountryMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_DomesticCountryMember" use="optional" />
    <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="us-gaap_TaxPeriodAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TaxPeriodAxis" use="optional" />
    <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="us-gaap_TaxPeriodDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="us-gaap_TaxPeriodDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2022Member" xlink:label="dsgx_TaxYear2022Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2022Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2023Member" xlink:label="dsgx_TaxYear2023Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2023Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2024Member" xlink:label="dsgx_TaxYear2024Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2024Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2025Member" xlink:label="dsgx_TaxYear2025Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2025Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2026Member" xlink:label="dsgx_TaxYear2026Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2026Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AfterTaxYear2026Member" xlink:label="dsgx_AfterTaxYear2026Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_AfterTaxYear2026Member" 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="4" xlink:from="us-gaap_StatementTable" 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_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_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" />
    <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_OperatingLossCarryforwards" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" xlink:type="extended" xlink:title="41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (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.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="1" xlink:from="us-gaap_StatementTable" 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_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_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" />
    <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_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_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" />
    <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_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" 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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" />
    <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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" xlink:type="extended" xlink:title="41807 - 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_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_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" />
    <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_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-20220131.xsd#dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:label="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ChangeInAccountingPrincipleMember" xlink:to="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" 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_StatementTable" 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_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-20220131.xsd#dsgx_IncomeBeforeTaxesPercent" xlink:label="dsgx_IncomeBeforeTaxesPercent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_IncomeBeforeTaxesPercent" 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_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" />
    <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_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="4" xlink:from="us-gaap_StatementLineItems" 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="5" xlink:from="us-gaap_StatementLineItems" 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="6" xlink:from="us-gaap_StatementLineItems" 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="7" xlink:from="us-gaap_StatementLineItems" 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="8" xlink:from="us-gaap_StatementLineItems" 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="9" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" />
    <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_ContractWithCustomerLiability" 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_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" />
    <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_ContractWithCustomerLiabilityRevenueRecognized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" 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_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" />
    <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_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" 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_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" 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_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" 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_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet" 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_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details" xlink:type="extended" xlink:title="41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 1 (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.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="1" xlink:from="us-gaap_StatementTable" 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_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_CapitalizedContractCostNet" xlink:label="us-gaap_CapitalizedContractCostNet" />
    <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_CapitalizedContractCostNet" 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_CapitalizedContractCostAmortization" xlink:label="us-gaap_CapitalizedContractCostAmortization" />
    <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_CapitalizedContractCostAmortization" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details" xlink:type="extended" xlink:title="41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 2 (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.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="1" xlink:from="us-gaap_StatementTable" 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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" />
    <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_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_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_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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2DefaultDetails" xlink:type="extended" xlink:title="41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 2 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_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_StatementLineItems" 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_StatementLineItems" 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_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" />
    <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_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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" />
    <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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" 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_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" />
    <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_RestructuringCharges" 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_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense" />
    <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_OtherNonoperatingExpense" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails" xlink:type="extended" xlink:title="42002 - Disclosure - Other Charges - Restructuring Provision (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_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis" />
    <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_RestructuringCostAndReserveAxis" use="optional" />
    <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="us-gaap_TypeOfRestructuringDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_EmployeeSeveranceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FacilityClosingMember" xlink:label="us-gaap_FacilityClosingMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_FacilityClosingMember" 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_StatementTable" 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_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_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve" />
    <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_RestructuringReserve" 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_RestructuringReserveAccrualAdjustment1" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1" />
    <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_RestructuringReserveAccrualAdjustment1" 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_PaymentsForRestructuring" xlink:label="us-gaap_PaymentsForRestructuring" />
    <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_PaymentsForRestructuring" 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_RestructuringReserveTranslationAdjustment" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment" />
    <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_RestructuringReserveTranslationAdjustment" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails" xlink:type="extended" xlink:title="42003 - Disclosure - Other Charges - 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_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_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" />
    <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_RestructuringPlanAxis" use="optional" />
    <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="us-gaap_RestructuringPlanDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Fiscal2021RestructuringPlanMember" xlink:label="dsgx_Fiscal2021RestructuringPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="dsgx_Fiscal2021RestructuringPlanMember" 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_StatementTable" 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_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_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" />
    <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_RestructuringCharges" 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_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" />
    <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_RestructuringAndRelatedCostExpectedCostRemaining1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" />
    <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_IncreaseDecreaseInAccountsReceivable" 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_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables" />
    <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_IncreaseDecreaseInOtherReceivables" 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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" />
    <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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" 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_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" />
    <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_IncreaseDecreaseInInventories" 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_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" />
    <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_IncreaseDecreaseInAccountsPayable" 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_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities" 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_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" 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_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue" 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_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital" 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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_StatementTable" 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.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_StatementTable" 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_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_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_StatementLineItems" 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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_StatementTable" 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-20220131.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.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_StatementTable" 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_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_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_StatementLineItems" 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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_StatementTable" 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.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_StatementTable" 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_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_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_StatementLineItems" xlink:to="us-gaap_NoncurrentAssets" priority="1" use="optional" />
  </definitionLink>
  <definitionLink 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_StatementTable" xlink:label="us-gaap_StatementTable" />
    <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="1" xlink:from="us-gaap_StatementTable" 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_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_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments" />
    <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_NumberOfReportableSegments" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureSubsequentEventDetails" xlink:type="extended" xlink:title="42301 - Disclosure - Subsequent Event (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_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" />
    <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_SubsequentEventTypeAxis" use="optional" />
    <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="us-gaap_SubsequentEventTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" 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_StatementTable" 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-20220131.xsd#dsgx_VitaDexSolutionsLLCMember" xlink:label="dsgx_VitaDexSolutionsLLCMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VitaDexSolutionsLLCMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_NetChbLlcMember" 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_StatementTable" 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_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_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_StatementLineItems" 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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" />
    <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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" priority="1" use="optional" />
  </definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>12
<FILENAME>dsgx-20220131_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.8119.21675 -->
<!--Based on XBRL 2.1-->
<!--Created on: 4/14/2022 5:56:39 PM-->
<!--Modified on: 4/14/2022 5:56:39 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/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 Stock [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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">Statement of Financial Position [Abstract]</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_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_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>
    <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>
    <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">us-gaap_AssetsCurrent</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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Assets, Noncurrent, Total</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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Right-of-Use Asset</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">us-gaap_DeferredIncomeTaxAssetsNet</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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_Goodwill_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_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">us-gaap_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_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>
    <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_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_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/terseLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_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">us-gaap_LiabilitiesCurrent</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">us-gaap_OperatingLeaseLiabilityNoncurrent</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">us-gaap_DeferredRevenueNoncurrent</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">us-gaap_AccruedIncomeTaxesNoncurrent</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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Income Tax Liabilities, 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_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">us-gaap_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>
    <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,756,210 at January 31, 2022 (January 31, 2021 - 84,494,658)</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 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">Accumulated deficit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained Earnings (Accumulated Deficit), Ending Balance</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 (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_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">us-gaap_StockholdersEquity</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</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</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">us-gaap_LiabilitiesAndStockholdersEquity</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 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_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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance, end of year (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance, beginning of year (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">Income Statement [Abstract]</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">us-gaap_GrossProfit</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_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingExpense" xlink:to="us-gaap_OtherNonoperatingExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherNonoperatingExpense_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_OtherNonoperatingExpense_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">us-gaap_OperatingExpenses</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">us-gaap_InterestExpense</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/terseLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income before income taxes</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 (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 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">us-gaap_IncomeTaxExpenseBenefit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax expense</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 (Benefit), 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 (Note 16)</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">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_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">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_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 (in shares)</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>
    <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 (in shares)</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>
    <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">Statement of Comprehensive Income [Abstract]</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 (recovery) expense of ($348) for the year ended January 31, 2022 (January 31, 2021 - $290; January 31, 2020 - ($132))</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">us-gaap_OtherComprehensiveIncomeLossNetOfTax</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">us-gaap_ComprehensiveIncomeNetOfTax</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">Statement of Stockholders' Equity [Abstract]</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 [Member]</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">AOCI Attributable to Parent [Member]</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 [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cumulative Effect, Period of Adoption [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cumulative Effect, Period of Adoption [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cumulative Effect, Period of Adoption, Adjustment [Member]</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_StockIssuedDuringPeriodValueNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodValueNewIssues_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Issuance of common shares, 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_StockIssuedDuringPeriodValueAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:to="us-gaap_StockIssuedDuringPeriodValueAcquisitions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions (Note 3)</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">Statement of Cash Flows [Abstract]</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">us-gaap_ShareBasedCompensation</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">us-gaap_OtherNoncashIncomeExpense</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-20220131.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">us-gaap_IncreaseDecreaseInOperatingCapital</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">us-gaap_NetCashProvidedByUsedInOperatingActivities</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">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</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">Net of cash acquired</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">us-gaap_NetCashProvidedByUsedInInvestingActivities</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">us-gaap_RepaymentsOfDebt</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">us-gaap_PaymentsOfDebtIssuanceCosts</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">us-gaap_NetCashProvidedByUsedInFinancingActivities</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 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">Increase 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 year</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 year</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 year 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 year for income taxes</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="dsgx_NotesToFinancialStatementsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_NotesToFinancialStatementsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Notes To Financial Statements [Abstract]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureTextBlockAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisclosureTextBlockAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DisclosureTextBlockAbstract</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DisclosureTextBlockAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Notes to Financial Statements</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_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_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_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">Note 5 - 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-20220131.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_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_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_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="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_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_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_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="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-20220131.xsd#dsgx_COREKontainersAndShipTrackMember" xlink:label="dsgx_COREKontainersAndShipTrackMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_COREKontainersAndShipTrackMember" xlink:to="dsgx_COREKontainersAndShipTrackMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_COREKontainersAndShipTrackMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to CORE, Kontainers and ShipTrack.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_COREKontainersAndShipTrackMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CORE, Kontainers and ShipTrack [Member]</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_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-20220131.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">Shelf Prospectus [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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 [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareCapitalTextBlock" xlink:label="dsgx_ShareCapitalTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareCapitalTextBlock" xlink:to="dsgx_ShareCapitalTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareCapitalTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Disclosure and information regarding share capital.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareCapitalTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Capital [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ShareCapitalTextBlock_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_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-20220131.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-20220131.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_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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerShareTextBlock_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_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_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 Tax Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" 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_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_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringPlanAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring Plan [Axis]</label>
    <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="us-gaap_RestructuringPlanDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="us-gaap_RestructuringPlanDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringPlanDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring Plan [Domain]</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 Income and Other Expense Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" 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_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_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">Segment Reporting Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" 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_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Subsequent Event 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_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventTypeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventTypeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Subsequent Event 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_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventMember" xlink:to="us-gaap_SubsequentEventMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Subsequent Event</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VitaDexSolutionsLLCMember" xlink:label="dsgx_VitaDexSolutionsLLCMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_VitaDexSolutionsLLCMember" xlink:to="dsgx_VitaDexSolutionsLLCMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_VitaDexSolutionsLLCMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to VitaDex Solutions, LLC.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_VitaDexSolutionsLLCMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">VitaDex Solutions, LLC</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Subsequent Events [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Subsequent Event</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-significant-accounting-policies-policies" xlink:label="dsgx_statement-statement-significant-accounting-policies-policies" 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-significant-accounting-policies-policies" xlink:to="dsgx_statement-statement-significant-accounting-policies-policies_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-significant-accounting-policies-policies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Significant Accounting Policies</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_PolicyTextBlockAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PolicyTextBlockAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_PolicyTextBlockAbstract</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PolicyTextBlockAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounting Policies</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">Accounting Policies [Abstract]</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_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consolidation, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of consolidation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign Currency Transactions and Translations Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign currency translation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UseOfEstimates" xlink:to="us-gaap_UseOfEstimates_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UseOfEstimates_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Use of Estimates, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UseOfEstimates_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Use of estimates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash and Cash Equivalents, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_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_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value of Financial Instruments, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Financial instruments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:to="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Provision for Credit Losses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InventoryPolicyTextBlock_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_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Impairment or Disposal of Long-Lived Assets, Including Intangible Assets, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Impairment of 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_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill and Intangible Assets, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill and 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_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_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_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Leases [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_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_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue from Contract with Customer [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue recognition</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:to="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research, Development, and Computer Software, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research and development costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_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_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsPolicy" xlink:to="us-gaap_BusinessCombinationsPolicy_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combinations Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationsPolicy_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business combinations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_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_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerSharePolicyTextBlock" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_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_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 adopted accounting pronouncements</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StatementSignificantAccountingPoliciesTablesAbstract" xlink:label="dsgx_StatementSignificantAccountingPoliciesTablesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_StatementSignificantAccountingPoliciesTablesAbstract" xlink:to="dsgx_StatementSignificantAccountingPoliciesTablesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_StatementSignificantAccountingPoliciesTablesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">No definition available.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_StatementSignificantAccountingPoliciesTablesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 2 - 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_TableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_TableTextBlock</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_TableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Notes Tables</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of assets, excluding financial assets and goodwill, amortization of useful life.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Amortization Finite-Lived Intangible Assets [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of amortization of intangible assets</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" xlink:label="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" xlink:to="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tabular disclosure of accumulated depreciation of property, plant and equipment useful life.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Depreciation of Property, Plant and Equipment Useful Life [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of depreciation of property, plant and equipment</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-3-acquisitions-tables" xlink:label="dsgx_statement-statement-note-3-acquisitions-tables" 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-3-acquisitions-tables" xlink:to="dsgx_statement-statement-note-3-acquisitions-tables_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-3-acquisitions-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 3 - Acquisitions</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 Acquisitions of Business</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, Pro Forma Information</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-4-fair-value-measurements-tables" xlink:label="dsgx_statement-statement-note-4-fair-value-measurements-tables" 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-4-fair-value-measurements-tables" xlink:to="dsgx_statement-statement-note-4-fair-value-measurements-tables_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-4-fair-value-measurements-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 4 - 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_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 derivative assets at 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_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</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</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-6-other-receivables-tables" xlink:label="dsgx_statement-statement-note-6-other-receivables-tables" 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-tables" xlink:to="dsgx_statement-statement-note-6-other-receivables-tables_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-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 6 - Other Receivables</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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="dsgx-20220131.xsd#dsgx_statement-statement--note-8-property-and-equipment-tables" xlink:label="dsgx_statement-statement--note-8-property-and-equipment-tables" 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-8-property-and-equipment-tables" xlink:to="dsgx_statement-statement--note-8-property-and-equipment-tables_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-8-property-and-equipment-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 8 - 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_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, plant and equipment</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-9-intangible-assets-tables" xlink:label="dsgx_statement-statement-note-9-intangible-assets-tables" 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-9-intangible-assets-tables" xlink:to="dsgx_statement-statement-note-9-intangible-assets-tables_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-9-intangible-assets-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 9 - 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_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/terseLabel" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Intangible Assets</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-10-goodwill-tables" xlink:label="dsgx_statement-statement-note-10-goodwill-tables" 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-10-goodwill-tables" xlink:to="dsgx_statement-statement-note-10-goodwill-tables_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-10-goodwill-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 10 - Goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:label="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:to="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Condensed Cash Flow Statement [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of changes in goodwill</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-11-accrued-liabilities-tables" xlink:label="dsgx_statement-statement-note-11-accrued-liabilities-tables" 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-11-accrued-liabilities-tables" xlink:to="dsgx_statement-statement-note-11-accrued-liabilities-tables_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-11-accrued-liabilities-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 11 - 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_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="dsgx-20220131.xsd#dsgx_statement-statement-note-13-leases-tables" xlink:label="dsgx_statement-statement-note-13-leases-tables" 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-13-leases-tables" xlink:to="dsgx_statement-statement-note-13-leases-tables_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-13-leases-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 13 - Leases</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 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_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="dsgx-20220131.xsd#dsgx_statement-statement-note-15-share-capital-tables" xlink:label="dsgx_statement-statement-note-15-share-capital-tables" 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-15-share-capital-tables" xlink:to="dsgx_statement-statement-note-15-share-capital-tables_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-15-share-capital-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 15 - 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_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Common Stock Outstanding Roll Forward [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of common shares outstanding</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-16-earnings-per-share-tables" xlink:label="dsgx_statement-statement-note-16-earnings-per-share-tables" 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-16-earnings-per-share-tables" xlink:to="dsgx_statement-statement-note-16-earnings-per-share-tables_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-16-earnings-per-share-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 16 - 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_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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-tables" xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-tables" 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-17-stockbased-compensation-plans-tables" xlink:to="dsgx_statement-statement-note-17-stockbased-compensation-plans-tables_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-17-stockbased-compensation-plans-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 17 - 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_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 share-based payment arrangement, expensed and capitalized amount</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 Share-based payment award, valuation 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 the 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">Schedule of share-based payment arrangement, option, exercise price range</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">Schedule of Share-based payment arrangement, performance shares, outstanding 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">Schedule of restricted stock and restricted stock unit activity</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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">Schedule of cash settled restricted share unit plan activity</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-tables" xlink:label="dsgx_statement-statement-note-18-income-taxes-tables" 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-18-income-taxes-tables" xlink:to="dsgx_statement-statement-note-18-income-taxes-tables_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-18-income-taxes-tables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 18 - 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_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Income before Income Tax, Domestic and Foreign</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of components of 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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of deferred tax assets 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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of effective income tax rate reconciliation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:to="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of Operating Loss Carryforwards [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of operating loss carryforwards</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of unrecognized tax benefits roll forward</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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-20-other-charges-tables" xlink:label="dsgx_statement-statement-note-20-other-charges-tables" 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-20-other-charges-tables" xlink:to="dsgx_statement-statement-note-20-other-charges-tables_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-20-other-charges-tables_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_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="dsgx-20220131.xsd#dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables" xlink:label="dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables" 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-21-supplemental-cash-flow-information-tables" xlink:to="dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables_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-21-supplemental-cash-flow-information-tables_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_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="dsgx-20220131.xsd#dsgx_statement-statement-note-22-segmented-information-tables" xlink:label="dsgx_statement-statement-note-22-segmented-information-tables" 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-22-segmented-information-tables" xlink:to="dsgx_statement-statement-note-22-segmented-information-tables_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-22-segmented-information-tables_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_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="dsgx-20220131.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="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-20220131.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 [Member]</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="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 [Member]</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 [Member]</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 [Member]</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 [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EquipmentMember" xlink:label="us-gaap_EquipmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquipmentMember" xlink:to="us-gaap_EquipmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquipmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equipment [Member]</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_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_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="dsgx-20220131.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-20220131.xsd#dsgx_CashsettledRestrictedSharePlanMember" xlink:label="dsgx_CashsettledRestrictedSharePlanMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashsettledRestrictedSharePlanMember" xlink:to="dsgx_CashsettledRestrictedSharePlanMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CashsettledRestrictedSharePlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">A cash-settled restricted share plan adopted by an entity.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CashsettledRestrictedSharePlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash-Settled Restricted Share Plan [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_TitleOfIndividualAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Title of Individual [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Title of Individual [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DirectorsAndOfficersMember" xlink:label="dsgx_DirectorsAndOfficersMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DirectorsAndOfficersMember" xlink:to="dsgx_DirectorsAndOfficersMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DirectorsAndOfficersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Titles of individuals' stock options.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DirectorsAndOfficersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Directors and Officers [Member]</label>
    <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="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounting Standards Update [Axis]</label>
    <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="us-gaap_TypeOfAdoptionMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_TypeOfAdoptionMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TypeOfAdoptionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounting Standards Update [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingStandardsUpdate201409Member" xlink:to="us-gaap_AccountingStandardsUpdate201409Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountingStandardsUpdate201409Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounting Standards Update 2014-09 [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TheAccountingStandardsUpdate201616Member" xlink:label="dsgx_TheAccountingStandardsUpdate201616Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TheAccountingStandardsUpdate201616Member" xlink:to="dsgx_TheAccountingStandardsUpdate201616Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_TheAccountingStandardsUpdate201616Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the Accounting Standards Update 2016-16.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_TheAccountingStandardsUpdate201616Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The Accounting Standards Update 2016-16 [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingStandardsUpdate201602Member" xlink:to="us-gaap_AccountingStandardsUpdate201602Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountingStandardsUpdate201602Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounting Standards Update 2016-02 [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ForeignCurrencyTransactionGainLossBeforeTax</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign Currency Transaction Gain (Loss), before Tax, Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillImpairmentLoss" xlink:to="us-gaap_GoodwillImpairmentLoss_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillImpairmentLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_GoodwillImpairmentLoss</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillImpairmentLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill, Impairment Loss</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">Acquired intangible assets estimated useful lives (Year)</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">Finite-Lived Intangible Asset, Useful 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_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_PropertyPlantAndEquipmentUsefulLife</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment, Useful Life (Year)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:to="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the period of benefit, including renewals, associated with the asset for the incremental costs of obtaining a contract with a customer.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Costs to Obtain a Contract with a Customer, Period of Benefit Including Renewals (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BaseAnnualFeePercent" xlink:label="dsgx_BaseAnnualFeePercent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BaseAnnualFeePercent" xlink:to="dsgx_BaseAnnualFeePercent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BaseAnnualFeePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The base annual fee percentage required for Directors participating in a share-based compensation plan.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BaseAnnualFeePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_BaseAnnualFeePercent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_BaseAnnualFeePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Base Annual Fee, Percent</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:to="dsgx_CashSettledRestrictedShareUnitsVestingPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period which an employee's right to exercise an award is no longer contingent on satisfaction of either a service condition, market condition or a performance condition, 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_CashSettledRestrictedShareUnitsVestingPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_CashSettledRestrictedShareUnitsVestingPeriod</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Settled Restricted Share Units, Vesting Period (Year)</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">us-gaap_ContractWithCustomerAssetNet</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</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</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" 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, Total</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/terseLabel" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Liability, Total</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PeoplevoxMember" xlink:to="dsgx_PeoplevoxMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_PeoplevoxMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to Peoplevox.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_PeoplevoxMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Peoplevox [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_KontainersMember" xlink:to="dsgx_KontainersMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_KontainersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to Kontainers.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_KontainersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Kontainers [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShipTrackMember" xlink:to="dsgx_ShipTrackMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShipTrackMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to ShipTrack.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShipTrackMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">ShipTrack [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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 [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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 [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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 [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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-20220131.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-20220131.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-20220131.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-20220131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_StepcomMember" xlink:to="dsgx_StepcomMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_StepcomMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents STEPcom.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_StepcomMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">STEPcom [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BesttransportMember" xlink:to="dsgx_BesttransportMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BesttransportMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents BestTransport.com Inc.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BesttransportMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">BestTransport [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AljexSoftwareIncMember" xlink:to="dsgx_AljexSoftwareIncMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AljexSoftwareIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information about the acquisition of Aljex Software, Inc.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AljexSoftwareIncMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aljex Software, Inc. [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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-20220131.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="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/terseLabel" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Acquired Receivables, Gross Contractual Amount</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">us-gaap_BusinessCombinationAcquiredReceivablesFairValue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Acquired Receivable, 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_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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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>
    <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">us-gaap_BusinessCombinationContingentConsiderationLiability</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">Business Combination, Contingent Consideration, Liability, Total</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">Acquisition-related costs</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, 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/terseLabel" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual</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/terseLabel" 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>
    <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">Business Combination, Acquired Receivables, Estimated Uncollectible</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">Purchase price consideration</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Consideration Transferred, Total</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" xlink:label="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-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-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" xlink:to="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-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-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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-20220131.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-20220131.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="dsgx-20220131.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>
    <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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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">Net working capital adjustments (receivable) / payable</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">Current assets, excluding cash acquired</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of right-of-use assets acquired at the acquisition date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Right-of-use assets</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-20220131.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-20220131.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-20220131.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>
    <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="dsgx-20220131.xsd#dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" xlink:label="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" 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-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" xlink:to="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals_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-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)</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</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" xlink:label="dsgx_statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-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-3-acquisitions-acquired-intangible-assets-useful-lives-details" xlink:to="dsgx_statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-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-3-acquisitions-acquired-intangible-assets-useful-lives-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 3 - Acquisitions - Acquired Intangible Assets Useful Lives (Details)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details" xlink:label="dsgx_statement-statement-note-3-acquisitions-pro-forma-results-of-operations-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-3-acquisitions-pro-forma-results-of-operations-details" xlink:to="dsgx_statement-statement-note-3-acquisitions-pro-forma-results-of-operations-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-3-acquisitions-pro-forma-results-of-operations-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 3 - Acquisitions - Pro Forma Results of Operations (Details)</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">us-gaap_BusinessAcquisitionsProFormaRevenue</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">us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss</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">us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic</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">us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted</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="dsgx-20220131.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">dsgx_DerivativeInstrumentSharesOfCommonStockHeld</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-20220131.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">dsgx_DerivativeInstrumentCommonSharesHeldPerShare</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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeGainOnDerivative" xlink:label="us-gaap_DerivativeGainOnDerivative" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeGainOnDerivative" xlink:to="us-gaap_DerivativeGainOnDerivative_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeGainOnDerivative_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative, Gain on Derivative</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DerivativeGainOnDerivative_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative, Gain on Derivatives</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="dsgx-20220131.xsd#dsgx_statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" xlink:label="dsgx_statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-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-4-fair-value-measurements-derivative-instruments-at-fair-value-details" xlink:to="dsgx_statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-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-4-fair-value-measurements-derivative-instruments-at-fair-value-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 4 - Fair Value Measurements - Derivative Instruments at Fair Value (Details)</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_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>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationAbstract" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationAbstract" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Assets and Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Abstract]</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-20220131.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">us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent</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">us-gaap_UnbilledReceivablesCurrent</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-20220131.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>
    <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>
    <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">us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs</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-20220131.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-20220131.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">Note 6 - Other Receivables - Other Receivables (Details)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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>
    <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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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">dsgx_AmountsRecoverableFromFundsHeldInEscrow</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="dsgx-20220131.xsd#dsgx_statement-statement-note-8-property-and-equipment-property-and-equipment-details" xlink:label="dsgx_statement-statement-note-8-property-and-equipment-property-and-equipment-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-8-property-and-equipment-property-and-equipment-details" xlink:to="dsgx_statement-statement-note-8-property-and-equipment-property-and-equipment-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-8-property-and-equipment-property-and-equipment-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 8 - Property and Equipment - Property and Equipment (Details)</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 [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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 [Member]</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 [Member]</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>
    <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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-9-intangible-assets-intangible-assets-details" xlink:label="dsgx_statement-statement-note-9-intangible-assets-intangible-assets-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-9-intangible-assets-intangible-assets-details" xlink:to="dsgx_statement-statement-note-9-intangible-assets-intangible-assets-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-9-intangible-assets-intangible-assets-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 9 - Intangible Assets - Intangible Assets (Details)</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_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>
    <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>
    <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">us-gaap_FiniteLivedIntangibleAssetsNet</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_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">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</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">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</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">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</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="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">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</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="dsgx-20220131.xsd#dsgx_statement-statement-note-10-goodwill-goodwill-details" xlink:label="dsgx_statement-statement-note-10-goodwill-goodwill-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-10-goodwill-goodwill-details" xlink:to="dsgx_statement-statement-note-10-goodwill-goodwill-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-10-goodwill-goodwill-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 10 - Goodwill - Goodwill (Details)</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">us-gaap_GoodwillAcquiredDuringPeriod</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">us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments</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="dsgx-20220131.xsd#dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:label="dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-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-11-accrued-liabilities-accrued-liabilities-details" xlink:to="dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-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-11-accrued-liabilities-accrued-liabilities-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 11 - Accrued Liabilities - Accrued Liabilities (Details)</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">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</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</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-20220131.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-20220131.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-20220131.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-20220131.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_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">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</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">us-gaap_DebtInstrumentTerm</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">us-gaap_LineOfCredit</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">us-gaap_LettersOfCreditOutstandingAmount</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_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">us-gaap_LesseeOperatingLeaseRemainingLeaseTerm</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">us-gaap_LesseeOperatingLeaseRenewalTerm</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="dsgx-20220131.xsd#dsgx_statement-statement-note-13-leases-components-of-operating-lease-expense-details" xlink:label="dsgx_statement-statement-note-13-leases-components-of-operating-lease-expense-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-13-leases-components-of-operating-lease-expense-details" xlink:to="dsgx_statement-statement-note-13-leases-components-of-operating-lease-expense-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-13-leases-components-of-operating-lease-expense-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 13 - Leases - Components of Operating Lease Expense (Details)</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>
    <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>
    <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">us-gaap_LeaseCost</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>
    <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>
    <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>
    <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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:label="dsgx_statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-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-13-leases-maturities-of-operating-lease-liabilities-details" xlink:to="dsgx_statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-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-13-leases-maturities-of-operating-lease-liabilities-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 13 - Leases - Maturities of Operating Lease Liabilities (Details)</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/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2023</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">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_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_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">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_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_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">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2027</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_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">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</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">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" 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="dsgx-20220131.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-20220131.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-20220131.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">dsgx_DeferredShareUnitLiabilityNumberOfCommonShares</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="dsgx-20220131.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">dsgx_ShelfProspectusPeriod</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-20220131.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">dsgx_ShelfProspectusMaximumAmount</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">us-gaap_SharesIssuedPricePerShare</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="dsgx-20220131.xsd#dsgx_OverallotmentOption" xlink:label="dsgx_OverallotmentOption" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OverallotmentOption" xlink:to="dsgx_OverallotmentOption_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_OverallotmentOption_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of rights given to the underwriter to sell additional shares over the initial allotment.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_OverallotmentOption_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_OverallotmentOption</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_OverallotmentOption_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Over-Allotment Option</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ProceedsFromIssuanceOfCommonStockNet" xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ProceedsFromIssuanceOfCommonStockNet" xlink:to="dsgx_ProceedsFromIssuanceOfCommonStockNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The cash inflow from the additional capital contribution to the entity, net of expenses associated with the offering.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_ProceedsFromIssuanceOfCommonStockNet</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from Issuance of Common Stock, Net</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">us-gaap_ProceedsFromStockOptionsExercised</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="dsgx-20220131.xsd#dsgx_statement-statement-note-15-share-capital-common-shares-outstanding-details" xlink:label="dsgx_statement-statement-note-15-share-capital-common-shares-outstanding-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-15-share-capital-common-shares-outstanding-details" xlink:to="dsgx_statement-statement-note-15-share-capital-common-shares-outstanding-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-15-share-capital-common-shares-outstanding-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 15 - Share Capital - Common Shares Outstanding (Details)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:to="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of shares issued from the exercise of stock options and share units.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock options and share units 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_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="dsgx-20220131.xsd#dsgx_statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" xlink:label="dsgx_statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-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-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" xlink:to="dsgx_statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-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-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 16 - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</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_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-20220131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember_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_ShareholderapprovedStockOptionPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shareholder-Approved Stock Option Plan [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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/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_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/periodStartLabel" 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>
    <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-20220131.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">dsgx_DeferredShareUnitsOutstandingNumber</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-20220131.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">dsgx_DeferredShareUnitsGrantsInPeriod</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-20220131.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">dsgx_DeferredShareUnitsRedeemedAndSettledInCash</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-20220131.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">dsgx_DeferredShareUnitsCompensationExpense</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-20220131.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">dsgx_CashSettledRestrictedShareUnitsCompensationExpense</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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-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-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" xlink:to="dsgx_statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-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-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 17 - Stock-based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-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-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" xlink:to="dsgx_statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-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-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 17 - Stock-based Compensation Plans - Assumptions Used in Black-scholes Model for Each Grant (Details)</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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-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-17-stockbased-compensation-plans-summary-of-option-activity-details" xlink:to="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-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-17-stockbased-compensation-plans-summary-of-option-activity-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 17 - Stock-based Compensation Plans - Summary of Option Activity (Details)</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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" 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_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>
    <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>
    <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>
    <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">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-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-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" xlink:to="dsgx_statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-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-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 17 - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)</label>
    <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="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercise Price Range [Axis]</label>
    <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="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercise Price Range [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range1Member" xlink:label="dsgx_Range1Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Range1Member" xlink:to="dsgx_Range1Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_Range1Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents range 1.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_Range1Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Range 1 [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range2Member" xlink:label="dsgx_Range2Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Range2Member" xlink:to="dsgx_Range2Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_Range2Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents range 2.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_Range2Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Range 2 [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range3Member" xlink:label="dsgx_Range3Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Range3Member" xlink:to="dsgx_Range3Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_Range3Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents range 3.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_Range3Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Range 3 [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range4Member" xlink:label="dsgx_Range4Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Range4Member" xlink:to="dsgx_Range4Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_Range4Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the fourth exercise price range.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_Range4Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Range 4 [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Range of Exercise Prices, Lower Limit (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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Range of Exercise Prices, Upper Limit (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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Exercise Price, Options Outstanding (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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Stock Options, 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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Exercise Price, Options Exercisable (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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Stock Options, Options Exercisable (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-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-17-stockbased-compensation-plans-summary-of-nonvested-share-details" xlink:to="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-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-17-stockbased-compensation-plans-summary-of-nonvested-share-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 17 - Stock-based Compensation Plans - Summary of Nonvested Share (Details)</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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" 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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" 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_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/2009/role/negatedTerseLabel" 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="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_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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-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-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" xlink:to="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-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-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 17 - Stock-based Compensation Plans Summary of Performance Share Units Activity (Details)</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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" 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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" 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="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>
    <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>
    <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="dsgx-20220131.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_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="dsgx-20220131.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="dsgx-20220131.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-20220131.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-20220131.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-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-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-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" xlink:to="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-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-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 17 - Stock-based Compensation Plans - Summary of Restricted Share Units Activity (Details)</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-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-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-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" xlink:to="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-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-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 17 - Stock-based Compensation Plans - Summary of CRSU Plan Activity (Details)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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">dsgx_CRSUAwardsOutstandingNumber</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>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" 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-20220131.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-20220131.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-20220131.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">dsgx_CRSUAwardsVestedAndSettledInCash</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-20220131.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">dsgx_CRSUAwardsForfeitedInPeriod</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-20220131.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-20220131.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-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" xlink:label="dsgx_statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-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-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" xlink:to="dsgx_statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-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-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 18 - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</label>
    <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="us-gaap_IncomeTaxAuthorityAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority [Axis]</label>
    <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="us-gaap_IncomeTaxAuthorityDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_IncomeTaxAuthorityDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority [Domain]</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.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 (US)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OtherCountriesMember" xlink:to="dsgx_OtherCountriesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_OtherCountriesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents other countries.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_OtherCountriesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Countries [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" xlink:label="dsgx_statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-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-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" xlink:to="dsgx_statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-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-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 18 - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:label="dsgx_statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-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-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:to="dsgx_statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-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-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 18 - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued liabilities not currently deductible</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated net operating losses</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:to="dsgx_DeferredTaxAssetsCorporateMinimumTaxes_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from corporate minimum taxes.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Corporate minimum taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Difference between tax and accounting basis 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_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research and development and other tax credits and expenses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DeferredTaxAssetsGross</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_DeferredTaxAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total deferred income tax assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Difference between tax and accounting basis 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_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Difference between tax and accounting basis 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_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesOther" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DeferredTaxLiabilitiesOther</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other temporary differences</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DeferredIncomeTaxLiabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:label="us-gaap_DeferredIncomeTaxLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total deferred income tax liabilities</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:to="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount before allocation of valuation allowances of deferred tax assets.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_DeferredTaxAssetsNetBeforeValuationAllowance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net 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_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DeferredTaxAssetsValuationAllowance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Valuation allowance</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:to="dsgx_DeferredTaxAssetsLiabilitesNet1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount, after allocation of valuation allowances, of deferred tax asset (liability) attributable to deductible differences and carryforwards, without jurisdictional netting.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets Liabilities Net1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net deferred income taxes, net of valuation allowance</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" xlink:label="dsgx_statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-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-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" xlink:to="dsgx_statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-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-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 18 - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_StatementScenarioAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_StatementScenarioAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Scenario [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScenarioUnspecifiedDomain" xlink:to="srt_ScenarioUnspecifiedDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ScenarioUnspecifiedDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Scenario [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AdjustmentForRoundingMember" xlink:label="dsgx_AdjustmentForRoundingMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AdjustmentForRoundingMember" xlink:to="dsgx_AdjustmentForRoundingMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AdjustmentForRoundingMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents an adjustment made for rounding in the document.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AdjustmentForRoundingMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjustment for rounding</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Combined basic Canadian statutory rates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax expense based on the above rates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Permanent differences including 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_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of differences between Canadian and foreign tax rates</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:to="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of rate changes on current year timing differences</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:to="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjustments relating to previous periods</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:to="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in accruals for uncertain tax positions .</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (decrease) in accruals for uncertain tax positions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Valuation allowance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock based compensation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_IncomeTaxReconciliationOtherAdjustments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other, including foreign exchange</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" xlink:label="dsgx_statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-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-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" xlink:to="dsgx_statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-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-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 18 - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</label>
    <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="us-gaap_IncomeTaxAuthorityNameAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority, 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_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Authority, 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_CanadaRevenueAgencyMember" xlink:label="us-gaap_CanadaRevenueAgencyMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CanadaRevenueAgencyMember" xlink:to="us-gaap_CanadaRevenueAgencyMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CanadaRevenueAgencyMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Canada Revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InternalRevenueServiceIRSMember" xlink:to="us-gaap_InternalRevenueServiceIRSMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InternalRevenueServiceIRSMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">United States</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_EmeaIncomeTaxAuthorityMember" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_EmeaIncomeTaxAuthorityMember" xlink:to="dsgx_EmeaIncomeTaxAuthorityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents income tax authority for EMEA.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">EMEA Region</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:to="dsgx_AsiaPacificIncomeTaxAuthorityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information related to Asia Pacific income tax authority</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Asia Pacific Region</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCountryMember" xlink:to="us-gaap_ForeignCountryMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ForeignCountryMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign Tax Authority [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DomesticCountryMember" xlink:to="us-gaap_DomesticCountryMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DomesticCountryMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Domestic Tax Authority [Member]</label>
    <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="us-gaap_TaxPeriodAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="us-gaap_TaxPeriodAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxPeriodAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Period [Axis]</label>
    <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="us-gaap_TaxPeriodDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="us-gaap_TaxPeriodDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxPeriodDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Tax Period [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2022Member" xlink:label="dsgx_TaxYear2022Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2022Member" xlink:to="dsgx_TaxYear2022Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_TaxYear2022Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents tax year 2022.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_TaxYear2022Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2023</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2023Member" xlink:label="dsgx_TaxYear2023Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2023Member" xlink:to="dsgx_TaxYear2023Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_TaxYear2023Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents tax year 2023.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_TaxYear2023Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2024</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2024Member" xlink:label="dsgx_TaxYear2024Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2024Member" xlink:to="dsgx_TaxYear2024Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_TaxYear2024Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents tax year 2024.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_TaxYear2024Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2025</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2025Member" xlink:label="dsgx_TaxYear2025Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2025Member" xlink:to="dsgx_TaxYear2025Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_TaxYear2025Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents tax year 2025.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_TaxYear2025Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2026</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2026Member" xlink:label="dsgx_TaxYear2026Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2026Member" xlink:to="dsgx_TaxYear2026Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_TaxYear2026Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to tax year 2026.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_TaxYear2026Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2027</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AfterTaxYear2026Member" xlink:label="dsgx_AfterTaxYear2026Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AfterTaxYear2026Member" xlink:to="dsgx_AfterTaxYear2026Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AfterTaxYear2026Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to after tax year 2026.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AfterTaxYear2026Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Thereafter</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLossCarryforwards" xlink:to="us-gaap_OperatingLossCarryforwards_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLossCarryforwards_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating loss carryforwards</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" xlink:label="dsgx_statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-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-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" xlink:to="dsgx_statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-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-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note 18 - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)</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">us-gaap_LiabilityForUncertainTaxPositionsNoncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liability, end of year</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liability, beginning of year</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_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gross increases - current period</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:to="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lapsing due to statutes of limitations</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-20220131.xsd#dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:label="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:to="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember_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_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Volunatry 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-20220131.xsd#dsgx_IncomeBeforeTaxesPercent" xlink:label="dsgx_IncomeBeforeTaxesPercent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_IncomeBeforeTaxesPercent" xlink:to="dsgx_IncomeBeforeTaxesPercent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_IncomeBeforeTaxesPercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income tax expense expressed as a percentage of income before taxes.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_IncomeBeforeTaxesPercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_IncomeBeforeTaxesPercent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_IncomeBeforeTaxesPercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Before Taxes, Percent</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">us-gaap_EffectiveIncomeTaxRateContinuingOperations</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, Total</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">us-gaap_CurrentFederalTaxExpenseBenefit</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">us-gaap_DeferredFederalIncomeTaxExpenseBenefit</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">us-gaap_UndistributedEarningsOfForeignSubsidiaries</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_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">us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate</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">us-gaap_ContractWithCustomerLiability</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">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">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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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>
    <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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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>
    <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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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">us-gaap_ContractWithCustomerAssetReclassifiedToReceivable</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-20220131.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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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_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">us-gaap_CapitalizedContractCostNet</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">us-gaap_CapitalizedContractCostAmortization</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_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_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">us-gaap_RevenueRemainingPerformanceObligation</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">us-gaap_RevenueRemainingPerformanceObligationPercentage</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="dsgx-20220131.xsd#dsgx_statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:label="dsgx_statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-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-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:to="dsgx_statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-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-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">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_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">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 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 charges</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-20-other-charges-restructuring-provision-details" xlink:label="dsgx_statement-statement-note-20-other-charges-restructuring-provision-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-20-other-charges-restructuring-provision-details" xlink:to="dsgx_statement-statement-note-20-other-charges-restructuring-provision-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-20-other-charges-restructuring-provision-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring Provision</label>
    <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="us-gaap_RestructuringCostAndReserveAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_RestructuringCostAndReserveAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringCostAndReserveAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring 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_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_TypeOfRestructuringDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TypeOfRestructuringDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Type of Restructuring [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeSeveranceMember" xlink:to="us-gaap_EmployeeSeveranceMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeSeveranceMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee Severance [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FacilityClosingMember" xlink:label="us-gaap_FacilityClosingMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FacilityClosingMember" xlink:to="us-gaap_FacilityClosingMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FacilityClosingMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Facility Closing [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringReserve" xlink:to="us-gaap_RestructuringReserve_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringReserve_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_RestructuringReserve</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_RestructuringReserve_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_RestructuringReserve_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_RestructuringReserveAccrualAdjustment1" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringReserveAccrualAdjustment1" xlink:to="us-gaap_RestructuringReserveAccrualAdjustment1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accruals and adjustments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accruals and adjustments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsForRestructuring" xlink:label="us-gaap_PaymentsForRestructuring" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForRestructuring" xlink:to="us-gaap_PaymentsForRestructuring_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsForRestructuring_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_PaymentsForRestructuring</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsForRestructuring_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash draw downs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestructuringReserveTranslationAdjustment" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringReserveTranslationAdjustment" xlink:to="us-gaap_RestructuringReserveTranslationAdjustment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_RestructuringReserveTranslationAdjustment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign exchange</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Fiscal2021RestructuringPlanMember" xlink:label="dsgx_Fiscal2021RestructuringPlanMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Fiscal2021RestructuringPlanMember" xlink:to="dsgx_Fiscal2021RestructuringPlanMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_Fiscal2021RestructuringPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the Fiscal 2021 Restructuring Plan.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_Fiscal2021RestructuringPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fiscal 2021 Restructuring Plan [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:to="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring and Related Cost, Expected Cost Remaining</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:label="dsgx_statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-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-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:to="dsgx_statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-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-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">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_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">us-gaap_IncreaseDecreaseInAccountsReceivable</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">us-gaap_IncreaseDecreaseInOtherReceivables</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">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</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">us-gaap_IncreaseDecreaseInInventories</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">us-gaap_IncreaseDecreaseInAccountsPayable</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">us-gaap_IncreaseDecreaseInIncomeTaxes</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-20220131.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">dsgx_IncreaseDecreaseInOperatingLeaseLiabilities</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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" xlink:label="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-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-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" xlink:to="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-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-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segmented Revenue by Geographical Location of Customer</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.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">EMEA</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="dsgx-20220131.xsd#dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" xlink:label="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-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-22-segmented-information-segmented-revenue-by-revenue-type-details" xlink:to="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-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-22-segmented-information-segmented-revenue-by-revenue-type-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segmented Revenue by Revenue Type</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-20220131.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="dsgx-20220131.xsd#dsgx_statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" xlink:label="dsgx_statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-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-22-segmented-information-longlived-assets-by-geographical-location-details" xlink:to="dsgx_statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-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-22-segmented-information-longlived-assets-by-geographical-location-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-lived Assets by Geographical Location</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">Geograhical 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">us-gaap_NumberOfReportableSegments</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>
    <loc xlink:type="locator" xlink:href="dsgx-20220131.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>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>13
<FILENAME>dsgx-20220131_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.8119.21675 -->
<!--Based on XBRL 2.1-->
<!--Created on: 4/14/2022 5:56:39 PM-->
<!--Modified on: 4/14/2022 5:56:39 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-20220131.xsd#DocumentDocumentAndEntityInformation" roleURI="http://www.descartes.com/role/DocumentDocumentAndEntityInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedBalanceSheets" roleURI="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedBalanceSheetsParentheticals" roleURI="http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfOperations" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfComprehensiveIncome" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfShareholdersEquity" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#StatementConsolidatedStatementsOfCashFlows" roleURI="http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureDescriptionOfBusiness" roleURI="http://www.descartes.com/role/DisclosureDescriptionOfBusiness" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureBasisOfPresentation" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitions" roleURI="http://www.descartes.com/role/DisclosureAcquisitions" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureFairValueMeasurements" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurements" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureTradeAccountsReceivable" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherReceivables" roleURI="http://www.descartes.com/role/DisclosureOtherReceivables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureInventory" roleURI="http://www.descartes.com/role/DisclosureInventory" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosurePropertyAndEquipment" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIntangibleAssets" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureGoodwill" roleURI="http://www.descartes.com/role/DisclosureGoodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAccruedLiabilities" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLongTermDebt" roleURI="http://www.descartes.com/role/DisclosureLongTermDebt" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeases" roleURI="http://www.descartes.com/role/DisclosureLeases" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureCommitmentsContingenciesAndGuarantees" roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureShareCapital" roleURI="http://www.descartes.com/role/DisclosureShareCapital" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureEarningsPerShare" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShare" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlans" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlans" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxes" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCosts" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherCharges" roleURI="http://www.descartes.com/role/DisclosureOtherCharges" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSupplementalCashFlowInformation" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformation" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSubsequentEvent" roleURI="http://www.descartes.com/role/DisclosureSubsequentEvent" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureBasisOfPresentationPolicies" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureBasisOfPresentationTables" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsTables" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureFairValueMeasurementsTables" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureTradeAccountsReceivableTables" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherReceivablesTables" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosurePropertyAndEquipmentTables" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIntangibleAssetsTables" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureGoodwillTables" roleURI="http://www.descartes.com/role/DisclosureGoodwillTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAccruedLiabilitiesTables" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeasesTables" roleURI="http://www.descartes.com/role/DisclosureLeasesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureShareCapitalTables" roleURI="http://www.descartes.com/role/DisclosureShareCapitalTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureEarningsPerShareTables" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansTables" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesTables" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherChargesTables" roleURI="http://www.descartes.com/role/DisclosureOtherChargesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSupplementalCashFlowInformationTables" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformationTables" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureBasisOfPresentationDetails" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAcquisitionsProFormaResultsOfOperationsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureTradeAccountsReceivableTradeReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureTradeAccountsReceivableDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherReceivablesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIntangibleAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIntangibleAssetsAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureGoodwillDetails" roleURI="http://www.descartes.com/role/DisclosureGoodwillDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureAccruedLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLongTermDebtDetails" roleURI="http://www.descartes.com/role/DisclosureLongTermDebtDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeasesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureCommitmentsContingenciesAndGuaranteesDetails" roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureShareCapitalDetails" roleURI="http://www.descartes.com/role/DisclosureShareCapitalDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureShareCapitalCommonSharesOutstandingDetails" roleURI="http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureIncomeTaxesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherChargesComponentsOfOtherChargesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherChargesRestructuringProvisionDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureOtherChargesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSegmentedInformationAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220131.xsd#DisclosureSubsequentEventDetails" roleURI="http://www.descartes.com/role/DisclosureSubsequentEventDetails" 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" />
  <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_637855557962562843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DocumentInformationTable" xlink:to="dei_LegalEntityAxis_637855557962562843" 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_637855557962562843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962562843" xlink:to="dei_EntityDomain_637855557962562843" 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_637855557962562843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DocumentInformationTable" xlink:to="us-gaap_StatementClassOfStockAxis_637855557962562843" 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_637855557962562843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementClassOfStockAxis_637855557962562843" xlink:to="us-gaap_ClassOfStockDomain_637855557962562843" 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_637855557962562843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockDomain_637855557962562843" xlink:to="us-gaap_CommonStockMember_637855557962562843" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_RightsToPurchaseCommonSharesMember" xlink:label="dsgx_RightsToPurchaseCommonSharesMember_637855557962562843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockDomain_637855557962562843" xlink:to="dsgx_RightsToPurchaseCommonSharesMember_637855557962562843" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DocumentInformationTable" xlink:to="dei_EntityAddressesAddressTypeAxis_637855557962572838" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_EntityAddressesAddressTypeAxis_637855557962572838" xlink:to="dei_AddressTypeDomain_637855557962572838" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_AddressTypeDomain_637855557962572838" xlink:to="dei_BusinessContactMember_637855557962572838" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DocumentInformationTable" xlink:to="dei_DocumentInformationLineItems_637855557962572838" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_DocumentType_637855557962572838" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_DocumentRegistrationStatement_637855557962572838" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_DocumentAnnualReport_637855557962572838" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_DocumentPeriodEndDate_637855557962572838" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityFileNumber_637855557962572838" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityRegistrantName_637855557962572838" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityIncorporationStateCountryCode_637855557962572838" 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_637855557962572838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_ContactPersonnelName_637855557962572838" 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_637855557962582840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityAddressAddressLine1_637855557962582840" 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_637855557962582840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityAddressAddressLine2_637855557962582840" 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_637855557962582840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityAddressAddressLine3_637855557962582840" 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_637855557962582840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityAddressCityOrTown_637855557962582840" 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_637855557962582840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityAddressStateOrProvince_637855557962582840" 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_637855557962582840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityAddressCountry_637855557962582840" 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_637855557962582840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityAddressPostalZipCode_637855557962582840" 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_637855557962582840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_CityAreaCode_637855557962582840" 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_637855557962582840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_LocalPhoneNumber_637855557962582840" 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_637855557962592837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_Security12bTitle_637855557962592837" 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_637855557962592837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_TradingSymbol_637855557962592837" 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_637855557962592837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_SecurityExchangeName_637855557962592837" 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_637855557962592837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_AnnualInformationForm_637855557962592837" 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_637855557962592837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_AuditedAnnualFinancialStatements_637855557962592837" 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_637855557962592837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityCommonStockSharesOutstanding_637855557962592837" 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_637855557962592837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityCurrentReportingStatus_637855557962592837" 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_637855557962592837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityInteractiveDataCurrent_637855557962592837" 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_637855557962602839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityEmergingGrowthCompany_637855557962602839" 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_637855557962602839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_AuditorName_637855557962602839" 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_637855557962602839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_AuditorFirmId_637855557962602839" 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_637855557962602839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_AuditorLocation_637855557962602839" 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_637855557962602839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityCentralIndexKey_637855557962602839" 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_637855557962602839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_CurrentFiscalYearEndDate_637855557962602839" 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_637855557962602839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_DocumentFiscalYearFocus_637855557962602839" 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_637855557962612840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_DocumentFiscalPeriodFocus_637855557962612840" 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_637855557962612840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_AmendmentFlag_637855557962612840" 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_637855557962612840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityFilerCategory_637855557962612840" 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_637855557962612840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityVoluntaryFilers_637855557962612840" 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_637855557962612840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityWellKnownSeasonedIssuer_637855557962612840" 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_637855557962612840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntitySmallBusiness_637855557962612840" 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_637855557962622839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637855557962572838" xlink:to="dei_EntityShellCompany_637855557962622839" order="39" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedBalanceSheets" xlink:type="extended" xlink:title="00100 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable_637855557962622839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementTable_637855557962622839" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962622839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962622839" xlink:to="dei_LegalEntityAxis_637855557962622839" 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_637855557962622839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962622839" xlink:to="dei_EntityDomain_637855557962622839" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962622839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962622839" xlink:to="us-gaap_StatementLineItems_637855557962622839" 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_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract_637855557962622839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962622839" xlink:to="us-gaap_AssetsCurrentAbstract_637855557962622839" 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_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_637855557962622839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_637855557962622839" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_637855557962622839" 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_637855557962622839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962622839" xlink:to="us-gaap_AccountsReceivableNetAbstract_637855557962622839" 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_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent_637855557962622839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_AccountsReceivableNetCurrent_637855557962622839" 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_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_OtherReceivablesNetCurrent_637855557962632839" 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_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_637855557962632839" 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_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_InventoryNet_637855557962632839" 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_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_AssetsCurrent_637855557962632839" 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_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_OtherAssetsNoncurrent_637855557962632839" 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_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_637855557962632839" 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_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_637855557962632839" 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_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_637855557962632839" 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_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_637855557962632839" 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_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_Goodwill_637855557962632839" 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_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637855557962622839" xlink:to="us-gaap_Assets_637855557962632839" 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_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962622839" xlink:to="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" 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_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent_637855557962642840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_AccountsPayableCurrent_637855557962642840" 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_637855557962642840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_AccruedLiabilitiesCurrent_637855557962642840" 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_637855557962642840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_637855557962642840" 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_637855557962642840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_AccruedIncomeTaxesCurrent_637855557962642840" 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_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_637855557962642840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_637855557962642840" 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_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent_637855557962642840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_LiabilitiesCurrent_637855557962642840" 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_637855557962642840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_LongTermDebtNoncurrent_637855557962642840" 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_637855557962642840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_637855557962642840" 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_637855557962642840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_DeferredRevenueNoncurrent_637855557962642840" 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_637855557962652837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent_637855557962652837" 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_637855557962652837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_637855557962652837" 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_637855557962652837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_Liabilities_637855557962652837" 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_637855557962652837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637855557962632839" xlink:to="us-gaap_CommitmentsAndContingencies_637855557962652837" 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_637855557962652837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962622839" xlink:to="us-gaap_StockholdersEquityAbstract_637855557962652837" 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_CommonStockValue" xlink:label="us-gaap_CommonStockValue_637855557962652837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637855557962652837" xlink:to="us-gaap_CommonStockValue_637855557962652837" 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_637855557962652837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637855557962652837" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_637855557962652837" 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_637855557962652837" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637855557962652837" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_637855557962652837" 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_637855557962662839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637855557962652837" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_637855557962662839" 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_637855557962662839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637855557962652837" xlink:to="us-gaap_StockholdersEquity_637855557962662839" 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_637855557962662839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637855557962652837" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_637855557962662839" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals" xlink:type="extended" xlink:title="00105 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable_637855557962662839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementTable_637855557962662839" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962662839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962662839" xlink:to="dei_LegalEntityAxis_637855557962662839" 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_637855557962662839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962662839" xlink:to="dei_EntityDomain_637855557962662839" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962662839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962662839" xlink:to="us-gaap_StatementLineItems_637855557962662839" 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_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued_637855557962662839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962662839" xlink:to="us-gaap_CommonStockSharesIssued_637855557962662839" 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_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962662839" xlink:to="us-gaap_CommonStockSharesOutstanding_637855557962672843" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" xlink:type="extended" xlink:title="00200 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_StatementTable_637855557962672843" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962672843" xlink:to="dei_LegalEntityAxis_637855557962672843" 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_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962672843" xlink:to="dei_EntityDomain_637855557962672843" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962672843" xlink:to="us-gaap_StatementLineItems_637855557962672843" 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_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962672843" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637855557962672843" 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_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962672843" xlink:to="us-gaap_CostOfGoodsAndServicesSold_637855557962672843" 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_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962672843" xlink:to="us-gaap_GrossProfit_637855557962672843" 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_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962672843" xlink:to="us-gaap_CostsAndExpensesAbstract_637855557962672843" 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_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637855557962672843" xlink:to="us-gaap_SellingAndMarketingExpense_637855557962672843" 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_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637855557962672843" xlink:to="us-gaap_ResearchAndDevelopmentExpense_637855557962672843" 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_637855557962672843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637855557962672843" xlink:to="us-gaap_GeneralAndAdministrativeExpense_637855557962672843" 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_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense_637855557962682840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637855557962672843" xlink:to="us-gaap_OtherNonoperatingExpense_637855557962682840" 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_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_637855557962682840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637855557962672843" xlink:to="us-gaap_AmortizationOfIntangibleAssets_637855557962682840" 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_637855557962682840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637855557962672843" xlink:to="us-gaap_OperatingExpenses_637855557962682840" 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_637855557962682840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637855557962672843" xlink:to="us-gaap_OperatingIncomeLoss_637855557962682840" 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_637855557962682840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637855557962672843" xlink:to="us-gaap_InterestExpense_637855557962682840" 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_637855557962682840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637855557962672843" xlink:to="us-gaap_InvestmentIncomeNet_637855557962682840" 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_637855557962682840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637855557962672843" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637855557962682840" 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_637855557962682840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962672843" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_637855557962682840" 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_637855557962682840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_637855557962682840" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_637855557962682840" 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_637855557962682840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_637855557962682840" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_637855557962682840" 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_637855557962682840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_637855557962682840" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637855557962682840" 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_637855557962692840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_637855557962682840" xlink:to="us-gaap_NetIncomeLoss_637855557962692840" 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_637855557962692840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962672843" xlink:to="us-gaap_EarningsPerShareAbstract_637855557962692840" 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_637855557962692840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637855557962692840" xlink:to="us-gaap_EarningsPerShareBasic_637855557962692840" 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_637855557962692840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637855557962692840" xlink:to="us-gaap_EarningsPerShareDiluted_637855557962692840" 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_637855557962692840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962672843" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_637855557962692840" 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_637855557962692840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_637855557962692840" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637855557962692840" 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_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637855557962692840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_637855557962692840" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637855557962692840" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" xlink:type="extended" xlink:title="00300 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementTable_637855557962702839" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962702839" xlink:to="dei_LegalEntityAxis_637855557962702839" 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_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962702839" xlink:to="dei_EntityDomain_637855557962702839" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962702839" xlink:to="us-gaap_StatementLineItems_637855557962702839" 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_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962702839" xlink:to="us-gaap_NetIncomeLoss_637855557962702839" 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_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962702839" xlink:to="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_637855557962702839" 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_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_637855557962702839" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_637855557962702839" 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_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_637855557962702839" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax_637855557962702839" 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_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_637855557962702839" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax_637855557962702839" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" xlink:type="extended" xlink:title="00305 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementTable_637855557962702839" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962702839" xlink:to="dei_LegalEntityAxis_637855557962702839" 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_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962702839" xlink:to="dei_EntityDomain_637855557962702839" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962702839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962702839" xlink:to="us-gaap_StatementLineItems_637855557962702839" 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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962702839" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_637855557962712839" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" xlink:type="extended" xlink:title="00400 - Statement - 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_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable_637855557962712839" 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_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962712839" xlink:to="us-gaap_StatementEquityComponentsAxis_637855557962712839" 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_CommonStockMember" xlink:label="us-gaap_CommonStockMember_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637855557962712839" xlink:to="us-gaap_CommonStockMember_637855557962712839" 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_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637855557962712839" xlink:to="us-gaap_AdditionalPaidInCapitalMember_637855557962712839" 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_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637855557962712839" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_637855557962712839" 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_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637855557962712839" xlink:to="us-gaap_RetainedEarningsMember_637855557962712839" 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_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637855557962712839" xlink:to="us-gaap_EquityComponentDomain_637855557962712839" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962712839" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis_637855557962712839" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis_637855557962712839" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember_637855557962712839" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis_637855557962712839" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain_637855557962712839" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962712839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962712839" xlink:to="us-gaap_StatementLineItems_637855557962712839" 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_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_637855557962722838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962712839" xlink:to="us-gaap_StockholdersEquity_637855557962722838" 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_637855557962722838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962712839" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_637855557962722838" 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_StockIssuedDuringPeriodValueNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues_637855557962722838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962712839" xlink:to="us-gaap_StockIssuedDuringPeriodValueNewIssues_637855557962722838" 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_StockIssuedDuringPeriodValueAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions_637855557962722838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962712839" xlink:to="us-gaap_StockIssuedDuringPeriodValueAcquisitions_637855557962722838" 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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_637855557962722838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962712839" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_637855557962722838" 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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_637855557962722838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962712839" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_637855557962722838" 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_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_637855557962722838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962712839" xlink:to="us-gaap_NetIncomeLoss_637855557962722838" 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_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_6378555579627228381" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962712839" xlink:to="us-gaap_StockholdersEquity_6378555579627228381" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" xlink:type="extended" xlink:title="00500 - Statement - 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_StatementTable" xlink:label="us-gaap_StatementTable_637855557962722838" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementTable_637855557962722838" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962722838" xlink:to="dei_LegalEntityAxis_637855557962732841" 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_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962732841" xlink:to="dei_EntityDomain_637855557962732841" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962722838" xlink:to="us-gaap_StatementLineItems_637855557962732841" 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_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962732841" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" 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_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" xlink:to="us-gaap_NetIncomeLoss_637855557962732841" 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_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962732841" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" 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_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" xlink:to="us-gaap_Depreciation_637855557962732841" 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_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" xlink:to="us-gaap_AmortizationOfIntangibleAssets_637855557962732841" 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_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" xlink:to="us-gaap_ShareBasedCompensation_637855557962732841" 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_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" xlink:to="us-gaap_OtherNoncashIncomeExpense_637855557962732841" 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_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_637855557962732841" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxCharges" xlink:label="dsgx_DeferredTaxCharges_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" xlink:to="dsgx_DeferredTaxCharges_637855557962732841" 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_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital_637855557962732841" 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_637855557962732841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637855557962732841" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_637855557962732841" 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_637855557962742839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962732841" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_637855557962742839" 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_637855557962742839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637855557962742839" 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_637855557962742839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637855557962742839" 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_637855557962742839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_637855557962742839" 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_637855557962742839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962732841" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637855557962742839" 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_637855557962742839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_ProceedsFromLinesOfCredit_637855557962742839" 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_637855557962742839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_RepaymentsOfDebt_637855557962742839" 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_637855557962742839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts_637855557962742839" 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_637855557962742839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_637855557962742839" 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_637855557962742839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_637855557962742839" 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_637855557962752841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_637855557962752841" 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_637855557962752841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_637855557962752841" 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_637855557962752841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_637855557962752841" 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_637855557962752841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_637855557962752841" 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_6378555579627528411" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637855557962742839" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_6378555579627528411" 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_637855557962752841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962732841" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_637855557962752841" 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_637855557962752841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract_637855557962752841" xlink:to="us-gaap_InterestPaidNet_637855557962752841" 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_637855557962752841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract_637855557962752841" xlink:to="us-gaap_IncomeTaxesPaidNet_637855557962752841" 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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962762842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962762842" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962762842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962762842" xlink:to="dei_LegalEntityAxis_637855557962762842" 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_637855557962762842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962762842" xlink:to="dei_EntityDomain_637855557962762842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962762842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962762842" xlink:to="us-gaap_StatementLineItems_637855557962762842" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962762842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962762842" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962762842" 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_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_637855557962762842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962762842" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_637855557962762842" 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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962762842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962762842" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962762842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962762842" xlink:to="dei_LegalEntityAxis_637855557962762842" 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_637855557962762842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962762842" xlink:to="dei_EntityDomain_637855557962762842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962762842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962762842" xlink:to="us-gaap_StatementLineItems_637855557962762842" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962772839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962762842" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962772839" 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_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_637855557962772839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962772839" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_637855557962772839" 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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962772839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962772839" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962772839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962772839" xlink:to="dei_LegalEntityAxis_637855557962772839" 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_637855557962772839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962772839" xlink:to="dei_EntityDomain_637855557962772839" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962772839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962772839" xlink:to="us-gaap_StatementLineItems_637855557962772839" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962772839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962772839" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962772839" 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_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_637855557962772839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962772839" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock_637855557962772839" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962772839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962772839" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962772839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962772839" xlink:to="dei_LegalEntityAxis_637855557962772839" 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_637855557962772839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962772839" xlink:to="dei_EntityDomain_637855557962772839" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962772839" xlink:to="us-gaap_StatementLineItems_637855557962782840" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962782840" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962782840" 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_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962782840" xlink:to="us-gaap_FairValueDisclosuresTextBlock_637855557962782840" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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_StatementTable" xlink:label="us-gaap_StatementTable_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReceivablesAbstract" xlink:to="us-gaap_StatementTable_637855557962782840" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962782840" xlink:to="dei_LegalEntityAxis_637855557962782840" 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_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962782840" xlink:to="dei_EntityDomain_637855557962782840" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962782840" xlink:to="us-gaap_StatementLineItems_637855557962782840" 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_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962782840" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_637855557962782840" 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-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962782840" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962782840" xlink:to="dei_LegalEntityAxis_637855557962782840" 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_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962782840" xlink:to="dei_EntityDomain_637855557962782840" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962782840" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962782840" xlink:to="us-gaap_StatementLineItems_637855557962782840" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962792875" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962782840" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962792875" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_OtherReceivablesTextBlock" xlink:label="dsgx_OtherReceivablesTextBlock_637855557962792875" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962792875" xlink:to="dsgx_OtherReceivablesTextBlock_637855557962792875" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962792875" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962792875" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962792875" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962792875" xlink:to="dei_LegalEntityAxis_637855557962792875" 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_637855557962792875" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962792875" xlink:to="dei_EntityDomain_637855557962792875" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962792875" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962792875" xlink:to="us-gaap_StatementLineItems_637855557962792875" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962792875" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962792875" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962792875" 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_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock_637855557962792875" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962792875" xlink:to="us-gaap_InventoryDisclosureTextBlock_637855557962792875" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962792875" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962792875" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962792875" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962792875" xlink:to="dei_LegalEntityAxis_637855557962792875" 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_637855557962792875" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962792875" xlink:to="dei_EntityDomain_637855557962792875" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962802841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962792875" xlink:to="us-gaap_StatementLineItems_637855557962802841" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962802841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962802841" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962802841" 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_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_637855557962802841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962802841" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_637855557962802841" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962802841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962802841" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962802841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962802841" xlink:to="dei_LegalEntityAxis_637855557962802841" 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_637855557962802841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962802841" xlink:to="dei_EntityDomain_637855557962802841" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962802841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962802841" xlink:to="us-gaap_StatementLineItems_637855557962802841" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962802841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962802841" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962802841" 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_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_637855557962802841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962802841" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_637855557962802841" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962802841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962802841" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962802841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962802841" xlink:to="dei_LegalEntityAxis_637855557962802841" 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_637855557962812871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962802841" xlink:to="dei_EntityDomain_637855557962812871" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962812871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962802841" xlink:to="us-gaap_StatementLineItems_637855557962812871" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962812871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962812871" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962812871" 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_GoodwillDisclosureTextBlock" xlink:label="us-gaap_GoodwillDisclosureTextBlock_637855557962812871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962812871" xlink:to="us-gaap_GoodwillDisclosureTextBlock_637855557962812871" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962812871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962812871" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962812871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962812871" xlink:to="dei_LegalEntityAxis_637855557962812871" 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_637855557962812871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962812871" xlink:to="dei_EntityDomain_637855557962812871" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962812871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962812871" xlink:to="us-gaap_StatementLineItems_637855557962812871" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962812871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962812871" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962812871" 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_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_637855557962812871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962812871" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_637855557962812871" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962812871" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962812871" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962822841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962812871" xlink:to="dei_LegalEntityAxis_637855557962822841" 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_637855557962822841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962822841" xlink:to="dei_EntityDomain_637855557962822841" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962822841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962812871" xlink:to="us-gaap_StatementLineItems_637855557962822841" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962822841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962822841" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962822841" 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_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock_637855557962822841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962822841" xlink:to="us-gaap_DebtDisclosureTextBlock_637855557962822841" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962822841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962822841" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962822841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962822841" xlink:to="dei_LegalEntityAxis_637855557962822841" 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_637855557962822841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962822841" xlink:to="dei_EntityDomain_637855557962822841" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962822841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962822841" xlink:to="us-gaap_StatementLineItems_637855557962822841" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962822841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962822841" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962822841" 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_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_637855557962822841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962822841" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_637855557962822841" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962832842" 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_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962832842" xlink:to="us-gaap_BusinessAcquisitionAxis_637855557962832842" 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_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637855557962832842" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637855557962832842" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_COREKontainersAndShipTrackMember" xlink:label="dsgx_COREKontainersAndShipTrackMember_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557962832842" xlink:to="dsgx_COREKontainersAndShipTrackMember_637855557962832842" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962832842" xlink:to="dei_LegalEntityAxis_637855557962832842" 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_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962832842" xlink:to="dei_EntityDomain_637855557962832842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962832842" xlink:to="us-gaap_StatementLineItems_637855557962832842" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962832842" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962832842" 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_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962832842" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_637855557962832842" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962832842" 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_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962832842" xlink:to="us-gaap_SubsidiarySaleOfStockAxis_637855557962832842" 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_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis_637855557962832842" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain_637855557962832842" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember_637855557962832842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain_637855557962832842" xlink:to="dsgx_ShelfProspectusMember_637855557962832842" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2020BaseShelfProspectusMember" xlink:label="dsgx_The2020BaseShelfProspectusMember_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain_637855557962832842" xlink:to="dsgx_The2020BaseShelfProspectusMember_637855557962842841" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962832842" xlink:to="dei_LegalEntityAxis_637855557962842841" 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_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962842841" xlink:to="dei_EntityDomain_637855557962842841" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962832842" xlink:to="us-gaap_StatementLineItems_637855557962842841" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962842841" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962842841" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareCapitalTextBlock" xlink:label="dsgx_ShareCapitalTextBlock_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962842841" xlink:to="dsgx_ShareCapitalTextBlock_637855557962842841" 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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962842841" 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_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962842841" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_637855557962842841" 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_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_637855557962842841" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_637855557962842841" 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_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_637855557962842841" xlink:to="us-gaap_EmployeeStockOptionMember_637855557962842841" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_637855557962842841" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember_637855557962842841" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember_637855557962842841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_637855557962842841" xlink:to="dsgx_PSUsAndRSUsMember_637855557962842841" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962852841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962842841" xlink:to="dei_LegalEntityAxis_637855557962852841" 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_637855557962852841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962852841" xlink:to="dei_EntityDomain_637855557962852841" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962852841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962842841" xlink:to="us-gaap_StatementLineItems_637855557962852841" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962852841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962852841" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962852841" 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_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock_637855557962852841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962852841" xlink:to="us-gaap_EarningsPerShareTextBlock_637855557962852841" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962852841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962852841" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962852841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962852841" xlink:to="dei_LegalEntityAxis_637855557962852841" 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_637855557962852841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962852841" xlink:to="dei_EntityDomain_637855557962852841" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962852841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962852841" xlink:to="us-gaap_StatementLineItems_637855557962852841" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962852841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962852841" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962852841" 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_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_637855557962852841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962852841" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_637855557962852841" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962862842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962862842" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962862842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962862842" xlink:to="dei_LegalEntityAxis_637855557962862842" 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_637855557962862842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962862842" xlink:to="dei_EntityDomain_637855557962862842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962862842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962862842" xlink:to="us-gaap_StatementLineItems_637855557962862842" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962862842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962862842" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962862842" 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_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_637855557962862842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962862842" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_637855557962862842" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962862842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962862842" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962862842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962862842" xlink:to="dei_LegalEntityAxis_637855557962862842" 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_637855557962862842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962862842" xlink:to="dei_EntityDomain_637855557962862842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962862842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962862842" xlink:to="us-gaap_StatementLineItems_637855557962862842" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962862842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962862842" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962862842" 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_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_637855557962872832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962862842" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_637855557962872832" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962872832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962872832" 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_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis_637855557962872832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962872832" xlink:to="us-gaap_RestructuringPlanAxis_637855557962872832" 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_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain_637855557962872832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanAxis_637855557962872832" xlink:to="us-gaap_RestructuringPlanDomain_637855557962872832" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962872832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962872832" xlink:to="dei_LegalEntityAxis_637855557962872832" 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_637855557962872832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962872832" xlink:to="dei_EntityDomain_637855557962872832" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962872832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962872832" xlink:to="us-gaap_StatementLineItems_637855557962872832" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962872832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962872832" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962872832" 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_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock_637855557962872832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962872832" xlink:to="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock_637855557962872832" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962872832" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962872832" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962882842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962872832" xlink:to="dei_LegalEntityAxis_637855557962882842" 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_637855557962882842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962882842" xlink:to="dei_EntityDomain_637855557962882842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962882842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962872832" xlink:to="us-gaap_StatementLineItems_637855557962882842" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962882842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962882842" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962882842" 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_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock_637855557962882842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962882842" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock_637855557962882842" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962882842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962882842" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962882842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962882842" xlink:to="dei_LegalEntityAxis_637855557962882842" 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_637855557962882842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962882842" xlink:to="dei_EntityDomain_637855557962882842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962882842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962882842" xlink:to="us-gaap_StatementLineItems_637855557962882842" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962882842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962882842" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962882842" 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_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_637855557962882842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962882842" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_637855557962882842" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSubsequentEvent" xlink:type="extended" xlink:title="12301 - Disclosure - Subsequent Event" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557962892842" 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_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962892842" xlink:to="us-gaap_SubsequentEventTypeAxis_637855557962892842" 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_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis_637855557962892842" xlink:to="us-gaap_SubsequentEventTypeDomain_637855557962892842" 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_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeDomain_637855557962892842" xlink:to="us-gaap_SubsequentEventMember_637855557962892842" 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_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962892842" xlink:to="us-gaap_BusinessAcquisitionAxis_637855557962892842" 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_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637855557962892842" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637855557962892842" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VitaDexSolutionsLLCMember" xlink:label="dsgx_VitaDexSolutionsLLCMember_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557962892842" xlink:to="dsgx_VitaDexSolutionsLLCMember_637855557962892842" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962892842" xlink:to="dei_LegalEntityAxis_637855557962892842" 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_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962892842" xlink:to="dei_EntityDomain_637855557962892842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962892842" xlink:to="us-gaap_StatementLineItems_637855557962892842" 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_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962892842" xlink:to="us-gaap_DisclosureTextBlockAbstract_637855557962892842" 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_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock_637855557962892842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract_637855557962892842" xlink:to="us-gaap_SubsequentEventsTextBlock_637855557962892842" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-significant-accounting-policies-policies" xlink:label="statement-statement-significant-accounting-policies-policies" />
    <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_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-significant-accounting-policies-policies" xlink:to="us-gaap_StatementTable_637855557962902839" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962902839" xlink:to="dei_LegalEntityAxis_637855557962902839" 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_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962902839" xlink:to="dei_EntityDomain_637855557962902839" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962902839" xlink:to="us-gaap_StatementLineItems_637855557962902839" 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_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962902839" xlink:to="us-gaap_PolicyTextBlockAbstract_637855557962902839" 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_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PolicyTextBlockAbstract_637855557962902839" xlink:to="us-gaap_AccountingPoliciesAbstract_637855557962902839" 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_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_637855557962902839" 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_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_ConsolidationPolicyTextBlock_637855557962902839" 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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_637855557962902839" 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_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_UseOfEstimates_637855557962902839" 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_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_637855557962902839" 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_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy_637855557962902839" 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_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_637855557962902839" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_637855557962902839" order="7" 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_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock_637855557962912841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_InventoryPolicyTextBlock_637855557962912841" 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_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_637855557962912841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock_637855557962912841" 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_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_637855557962912841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_637855557962912841" 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_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_637855557962912841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_637855557962912841" order="11" 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_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_637855557962912841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_637855557962912841" order="12" 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_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_637855557962912841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_637855557962912841" order="13" 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_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_637855557962912841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_637855557962912841" 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_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_637855557962912841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_637855557962912841" order="15" 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_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy_637855557962912841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_BusinessCombinationsPolicy_637855557962912841" order="16" 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_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_637855557962922843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_637855557962922843" order="17" 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_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_637855557962922843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock_637855557962922843" order="18" 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_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_637855557962922843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract_637855557962902839" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_637855557962922843" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureBasisOfPresentationTables" xlink:type="extended" xlink:title="30203 - Disclosure - Basis of Presentation (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StatementSignificantAccountingPoliciesTablesAbstract" xlink:label="StatementSignificantAccountingPoliciesTablesAbstract" />
    <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_637855557962922843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementSignificantAccountingPoliciesTablesAbstract" xlink:to="us-gaap_StatementTable_637855557962922843" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962922843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962922843" xlink:to="dei_LegalEntityAxis_637855557962922843" 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_EntityDomain" xlink:label="dei_EntityDomain_637855557962922843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962922843" xlink:to="dei_EntityDomain_637855557962922843" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962922843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962922843" xlink:to="us-gaap_StatementLineItems_637855557962922843" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557962922843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962922843" xlink:to="us-gaap_TableTextBlock_637855557962922843" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_637855557962922843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557962922843" xlink:to="dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock_637855557962922843" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock" xlink:label="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_637855557962932843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557962922843" xlink:to="dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock_637855557962932843" 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="dsgx-20220131.xsd#dsgx_statement-statement-note-3-acquisitions-tables" xlink:label="statement-statement-note-3-acquisitions-tables" />
    <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_637855557962932843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-3-acquisitions-tables" xlink:to="us-gaap_StatementTable_637855557962932843" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962932843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962932843" xlink:to="dei_LegalEntityAxis_637855557962932843" 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_637855557962932843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962932843" xlink:to="dei_EntityDomain_637855557962932843" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962932843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962932843" xlink:to="us-gaap_StatementLineItems_637855557962932843" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557962932843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962932843" xlink:to="us-gaap_TableTextBlock_637855557962932843" 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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_637855557962932843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557962932843" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_637855557962932843" 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_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_637855557962932843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557962932843" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_637855557962932843" 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_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_637855557962932843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557962932843" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_637855557962932843" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-4-fair-value-measurements-tables" xlink:label="statement-statement-note-4-fair-value-measurements-tables" />
    <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_637855557962942842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-4-fair-value-measurements-tables" xlink:to="us-gaap_StatementTable_637855557962942842" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962942842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962942842" xlink:to="dei_LegalEntityAxis_637855557962942842" 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_637855557962942842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962942842" xlink:to="dei_EntityDomain_637855557962942842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962942842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962942842" xlink:to="us-gaap_StatementLineItems_637855557962942842" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557962942842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962942842" xlink:to="us-gaap_TableTextBlock_637855557962942842" 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_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_637855557962942842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557962942842" xlink:to="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_637855557962942842" 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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_637855557962942842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557962942842" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_637855557962942842" 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_StatementTable" xlink:label="us-gaap_StatementTable_637855557962942842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReceivablesAbstract" xlink:to="us-gaap_StatementTable_637855557962942842" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557962942842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962942842" xlink:to="dei_LegalEntityAxis_637855557962942842" 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_637855557962942842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557962942842" xlink:to="dei_EntityDomain_637855557962942842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557962952842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557962942842" xlink:to="us-gaap_StatementLineItems_637855557962952842" 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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_637855557962952842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962952842" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_637855557962952842" 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_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_637855557962952842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557962952842" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_637855557962952842" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" 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-20220131.xsd#dsgx_statement-statement-note-6-other-receivables-tables" xlink:label="statement-statement-note-6-other-receivables-tables" />
    <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_637855557963012846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-6-other-receivables-tables" xlink:to="us-gaap_StatementTable_637855557963012846" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963012846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963012846" xlink:to="dei_LegalEntityAxis_637855557963012846" 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_637855557963012846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963012846" xlink:to="dei_EntityDomain_637855557963012846" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963012846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963012846" xlink:to="us-gaap_StatementLineItems_637855557963012846" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963012846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963012846" xlink:to="us-gaap_TableTextBlock_637855557963012846" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_OtherReceivablesTableTextBlock" xlink:label="dsgx_OtherReceivablesTableTextBlock_637855557963012846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963012846" xlink:to="dsgx_OtherReceivablesTableTextBlock_637855557963012846" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement--note-8-property-and-equipment-tables" xlink:label="statement-statement--note-8-property-and-equipment-tables" />
    <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_637855557963022842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement--note-8-property-and-equipment-tables" xlink:to="us-gaap_StatementTable_637855557963022842" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963022842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963022842" xlink:to="dei_LegalEntityAxis_637855557963022842" 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_637855557963022842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963022842" xlink:to="dei_EntityDomain_637855557963022842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963022842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963022842" xlink:to="us-gaap_StatementLineItems_637855557963022842" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963022842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963022842" xlink:to="us-gaap_TableTextBlock_637855557963022842" 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_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_637855557963022842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963022842" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_637855557963022842" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-9-intangible-assets-tables" xlink:label="statement-statement-note-9-intangible-assets-tables" />
    <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_637855557963022842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-9-intangible-assets-tables" xlink:to="us-gaap_StatementTable_637855557963022842" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963022842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963022842" xlink:to="dei_LegalEntityAxis_637855557963022842" 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_637855557963022842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963022842" xlink:to="dei_EntityDomain_637855557963022842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963032842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963022842" xlink:to="us-gaap_StatementLineItems_637855557963032842" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963032842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963032842" xlink:to="us-gaap_TableTextBlock_637855557963032842" 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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_637855557963032842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963032842" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_637855557963032842" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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-20220131.xsd#dsgx_statement-statement-note-10-goodwill-tables" xlink:label="statement-statement-note-10-goodwill-tables" />
    <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_637855557963032842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-10-goodwill-tables" xlink:to="us-gaap_StatementTable_637855557963032842" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963032842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963032842" xlink:to="dei_LegalEntityAxis_637855557963032842" 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_637855557963032842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963032842" xlink:to="dei_EntityDomain_637855557963032842" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963032842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963032842" xlink:to="us-gaap_StatementLineItems_637855557963032842" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963032842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963032842" xlink:to="us-gaap_TableTextBlock_637855557963032842" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:label="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock_637855557963032842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963032842" xlink:to="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock_637855557963032842" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-11-accrued-liabilities-tables" xlink:label="statement-statement-note-11-accrued-liabilities-tables" />
    <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_637855557963032842" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-11-accrued-liabilities-tables" xlink:to="us-gaap_StatementTable_637855557963032842" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963032842" xlink:to="dei_LegalEntityAxis_637855557963042845" 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_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963042845" xlink:to="dei_EntityDomain_637855557963042845" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963032842" xlink:to="us-gaap_StatementLineItems_637855557963042845" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963042845" xlink:to="us-gaap_TableTextBlock_637855557963042845" 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_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963042845" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_637855557963042845" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-13-leases-tables" xlink:label="statement-statement-note-13-leases-tables" />
    <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_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-13-leases-tables" xlink:to="us-gaap_StatementTable_637855557963042845" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963042845" xlink:to="dei_LegalEntityAxis_637855557963042845" 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_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963042845" xlink:to="dei_EntityDomain_637855557963042845" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963042845" xlink:to="us-gaap_StatementLineItems_637855557963042845" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963042845" xlink:to="us-gaap_TableTextBlock_637855557963042845" 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_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963042845" xlink:to="us-gaap_LeaseCostTableTextBlock_637855557963042845" 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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_637855557963042845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963042845" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_637855557963042845" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureShareCapitalTables" xlink:type="extended" xlink:title="31503 - Disclosure - Share Capital (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-15-share-capital-tables" xlink:label="statement-statement-note-15-share-capital-tables" />
    <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_637855557963052843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-15-share-capital-tables" xlink:to="us-gaap_StatementTable_637855557963052843" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963052843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963052843" xlink:to="dei_LegalEntityAxis_637855557963052843" 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_637855557963052843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963052843" xlink:to="dei_EntityDomain_637855557963052843" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963052843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963052843" xlink:to="us-gaap_StatementLineItems_637855557963052843" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963052843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963052843" xlink:to="us-gaap_TableTextBlock_637855557963052843" 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_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock_637855557963052843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963052843" xlink:to="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock_637855557963052843" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-16-earnings-per-share-tables" xlink:label="statement-statement-note-16-earnings-per-share-tables" />
    <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_637855557963052843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-16-earnings-per-share-tables" xlink:to="us-gaap_StatementTable_637855557963052843" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963052843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963052843" xlink:to="dei_LegalEntityAxis_637855557963052843" 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_637855557963052843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963052843" xlink:to="dei_EntityDomain_637855557963052843" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963052843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963052843" xlink:to="us-gaap_StatementLineItems_637855557963052843" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963052843" xlink:to="us-gaap_TableTextBlock_637855557963062845" 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_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963062845" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_637855557963062845" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-tables" xlink:label="statement-statement-note-17-stockbased-compensation-plans-tables" />
    <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_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-17-stockbased-compensation-plans-tables" xlink:to="us-gaap_StatementTable_637855557963062845" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963062845" xlink:to="dei_LegalEntityAxis_637855557963062845" 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_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963062845" xlink:to="dei_EntityDomain_637855557963062845" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963062845" xlink:to="us-gaap_StatementLineItems_637855557963062845" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963062845" xlink:to="us-gaap_TableTextBlock_637855557963062845" 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_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963062845" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_637855557963062845" 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_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963062845" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_637855557963062845" 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_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963062845" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_637855557963062845" 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_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963062845" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_637855557963062845" 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_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_637855557963062845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963062845" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_637855557963062845" 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_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_637855557963072843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963062845" xlink:to="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_637855557963072843" 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_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_637855557963072843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963062845" xlink:to="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_637855557963072843" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_637855557963072843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963062845" xlink:to="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_637855557963072843" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesTables" xlink:type="extended" xlink:title="31803 - Disclosure - Income Taxes (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-tables" xlink:label="statement-statement-note-18-income-taxes-tables" />
    <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_637855557963072843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-18-income-taxes-tables" xlink:to="us-gaap_StatementTable_637855557963072843" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963072843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963072843" xlink:to="dei_LegalEntityAxis_637855557963072843" 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_637855557963072843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963072843" xlink:to="dei_EntityDomain_637855557963072843" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963072843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963072843" xlink:to="us-gaap_StatementLineItems_637855557963072843" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963072843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963072843" xlink:to="us-gaap_TableTextBlock_637855557963072843" 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_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_637855557963072843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963072843" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_637855557963072843" 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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_637855557963072843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963072843" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_637855557963072843" 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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_637855557963072843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963072843" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_637855557963072843" 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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_637855557963082848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963072843" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_637855557963082848" 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_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_637855557963082848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963072843" xlink:to="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_637855557963082848" 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_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_637855557963082848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963072843" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_637855557963082848" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557963082848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557963082848" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963082848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963082848" xlink:to="dei_LegalEntityAxis_637855557963082848" 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_637855557963082848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963082848" xlink:to="dei_EntityDomain_637855557963082848" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963082848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963082848" xlink:to="us-gaap_StatementLineItems_637855557963082848" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963082848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963082848" xlink:to="us-gaap_TableTextBlock_637855557963082848" 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_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_637855557963082848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963082848" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_637855557963082848" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-20-other-charges-tables" xlink:label="statement-statement-note-20-other-charges-tables" />
    <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_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-20-other-charges-tables" xlink:to="us-gaap_StatementTable_637855557963092849" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963092849" xlink:to="dei_LegalEntityAxis_637855557963092849" 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_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963092849" xlink:to="dei_EntityDomain_637855557963092849" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963092849" xlink:to="us-gaap_StatementLineItems_637855557963092849" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963092849" xlink:to="us-gaap_TableTextBlock_637855557963092849" 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_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963092849" xlink:to="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_637855557963092849" 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_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963092849" xlink:to="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_637855557963092849" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables" xlink:label="statement-statement-note-21-supplemental-cash-flow-information-tables" />
    <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_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-21-supplemental-cash-flow-information-tables" xlink:to="us-gaap_StatementTable_637855557963092849" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963092849" xlink:to="dei_LegalEntityAxis_637855557963092849" 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_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963092849" xlink:to="dei_EntityDomain_637855557963092849" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963092849" xlink:to="us-gaap_StatementLineItems_637855557963092849" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963092849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963092849" xlink:to="us-gaap_TableTextBlock_637855557963092849" 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_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_637855557963102847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963092849" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_637855557963102847" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-22-segmented-information-tables" xlink:label="statement-statement-note-22-segmented-information-tables" />
    <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_637855557963102847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-22-segmented-information-tables" xlink:to="us-gaap_StatementTable_637855557963102847" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963102847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963102847" xlink:to="dei_LegalEntityAxis_637855557963102847" 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_637855557963102847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963102847" xlink:to="dei_EntityDomain_637855557963102847" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963102847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963102847" xlink:to="us-gaap_StatementLineItems_637855557963102847" 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_TableTextBlock" xlink:label="us-gaap_TableTextBlock_637855557963102847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963102847" xlink:to="us-gaap_TableTextBlock_637855557963102847" 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_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_637855557963102847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963102847" xlink:to="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_637855557963102847" 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_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_637855557963102847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963102847" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_637855557963102847" 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_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_637855557963102847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock_637855557963102847" xlink:to="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_637855557963102847" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" xlink:type="extended" xlink:title="40201 - Disclosure - Basis of Presentation (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963112846" 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_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963112846" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637855557963112846" 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_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637855557963112846" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963112846" 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_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963112846" xlink:to="us-gaap_CustomerRelationshipsMember_637855557963112846" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963112846" xlink:to="dsgx_ExistingTechnologyMember_637855557963112846" 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_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963112846" xlink:to="us-gaap_TradeNamesMember_637855557963112846" 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_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963112846" xlink:to="us-gaap_NoncompeteAgreementsMember_637855557963112846" order="4" 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_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963112846" xlink:to="srt_RangeAxis_637855557963112846" order="2" 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_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637855557963112846" xlink:to="srt_RangeMember_637855557963112846" 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_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637855557963112846" xlink:to="srt_MinimumMember_637855557963112846" 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_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637855557963112846" xlink:to="srt_MaximumMember_637855557963112846" 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_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963112846" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_637855557963112846" 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_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain_637855557963112846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis_637855557963112846" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain_637855557963112846" 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_637855557963122844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637855557963112846" xlink:to="us-gaap_ComputerEquipmentMember_637855557963122844" 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_637855557963122844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637855557963112846" xlink:to="us-gaap_FurnitureAndFixturesMember_637855557963122844" 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_EquipmentMember" xlink:label="us-gaap_EquipmentMember_637855557963122844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637855557963112846" xlink:to="us-gaap_EquipmentMember_637855557963122844" 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_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_637855557963122844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963112846" xlink:to="us-gaap_AwardTypeAxis_637855557963122844" 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963122844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637855557963122844" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963122844" 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_637855557963122844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963122844" xlink:to="us-gaap_EmployeeStockOptionMember_637855557963122844" 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_637855557963122844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963122844" xlink:to="us-gaap_PerformanceSharesMember_637855557963122844" 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_637855557963122844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963122844" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_637855557963122844" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember_637855557963122844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963122844" xlink:to="dsgx_DeferredShareUnitPlanMember_637855557963122844" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CashsettledRestrictedSharePlanMember" xlink:label="dsgx_CashsettledRestrictedSharePlanMember_637855557963122844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963122844" xlink:to="dsgx_CashsettledRestrictedSharePlanMember_637855557963122844" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis_637855557963122844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963112846" xlink:to="srt_TitleOfIndividualAxis_637855557963122844" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain_637855557963132847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis_637855557963122844" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain_637855557963132847" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DirectorsAndOfficersMember" xlink:label="dsgx_DirectorsAndOfficersMember_637855557963132847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain_637855557963132847" xlink:to="dsgx_DirectorsAndOfficersMember_637855557963132847" 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_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_637855557963132847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963112846" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_637855557963132847" order="6" use="optional" />
    <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="us-gaap_TypeOfAdoptionMember_637855557963132847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_637855557963132847" xlink:to="us-gaap_TypeOfAdoptionMember_637855557963132847" 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_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member_637855557963132847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfAdoptionMember_637855557963132847" xlink:to="us-gaap_AccountingStandardsUpdate201409Member_637855557963132847" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TheAccountingStandardsUpdate201616Member" xlink:label="dsgx_TheAccountingStandardsUpdate201616Member_637855557963132847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfAdoptionMember_637855557963132847" xlink:to="dsgx_TheAccountingStandardsUpdate201616Member_637855557963132847" 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_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member_637855557963132847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfAdoptionMember_637855557963132847" xlink:to="us-gaap_AccountingStandardsUpdate201602Member_637855557963132847" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963132847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963112846" xlink:to="dei_LegalEntityAxis_637855557963132847" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain_637855557963132847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963132847" xlink:to="dei_EntityDomain_637855557963132847" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963142845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963112846" xlink:to="us-gaap_StatementLineItems_637855557963142845" 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_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_637855557963142845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_637855557963142845" 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_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss_637855557963142845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_GoodwillImpairmentLoss_637855557963142845" 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_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_637855557963142845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_637855557963142845" 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_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife_637855557963142845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife_637855557963142845" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_637855557963142845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals_637855557963142845" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_637855557963142845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_637855557963142845" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_637855557963142845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_637855557963142845" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BaseAnnualFeePercent" xlink:label="dsgx_BaseAnnualFeePercent_637855557963152844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="dsgx_BaseAnnualFeePercent_637855557963152844" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod_637855557963152844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="dsgx_CashSettledRestrictedShareUnitsVestingPeriod_637855557963152844" 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_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet_637855557963152844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_ContractWithCustomerAssetNet_637855557963152844" 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_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent_637855557963152844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_OtherAssetsNoncurrent_637855557963152844" order="11" 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_637855557963152844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_637855557963152844" order="12" 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_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_637855557963152844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_637855557963152844" order="13" 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_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability_637855557963162843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_OperatingLeaseLiability_637855557963162843" 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_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_637855557963162843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963142845" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_637855557963162843" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963162843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963162843" 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_637855557963162843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963162843" xlink:to="us-gaap_BusinessAcquisitionAxis_637855557963162843" 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_637855557963162843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637855557963162843" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember_637855557963162843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_PeoplevoxMember_637855557963162843" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember_637855557963162843" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_KontainersMember_637855557963162843" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_ShipTrackMember_637855557963172847" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_QuestawebMember_637855557963172847" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_PortrixMember_637855557963172847" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_GreenmileMember_637855557963172847" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_The2021AcquisitionsMember_637855557963172847" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Acquisitions2022Member" xlink:label="dsgx_Acquisitions2022Member_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_Acquisitions2022Member_637855557963172847" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_VisualComplianceMember_637855557963172847" order="9" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember_637855557963172847" order="10" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_StepcomMember_637855557963172847" order="11" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_BesttransportMember_637855557963172847" order="12" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_AljexSoftwareIncMember_637855557963172847" order="13" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_VelocityMailMember_637855557963172847" order="14" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember_637855557963172847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963162843" xlink:to="dsgx_PinPointMember_637855557963172847" order="15" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963182848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963162843" xlink:to="dei_LegalEntityAxis_637855557963182848" 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_637855557963182848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963182848" xlink:to="dei_EntityDomain_637855557963182848" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963182848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963162843" xlink:to="us-gaap_StatementLineItems_637855557963182848" 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_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637855557963182848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637855557963182848" 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_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_637855557963182848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_637855557963182848" 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_BusinessCombinationAcquiredReceivablesFairValue" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_637855557963182848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_637855557963182848" 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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637855557963182848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637855557963182848" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_637855557963182848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_637855557963182848" 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_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_637855557963182848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_637855557963182848" 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_637855557963192846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_637855557963192846" order="7" 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_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_637855557963192846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_637855557963192846" 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_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_637855557963192846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_637855557963192846" 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_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_637855557963192846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_637855557963192846" 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_637855557963192846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible_637855557963192846" order="11" 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_637855557963192846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963182848" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_637855557963192846" order="12" 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="dsgx-20220131.xsd#dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" xlink:label="statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" />
    <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_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" xlink:to="us-gaap_StatementTable_637855557963202844" 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_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963202844" xlink:to="us-gaap_BusinessAcquisitionAxis_637855557963202844" 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_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637855557963202844" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_PeoplevoxMember_637855557963202844" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_KontainersMember_637855557963202844" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_ShipTrackMember_637855557963202844" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_QuestawebMember_637855557963202844" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_PortrixMember_637855557963202844" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_GreenmileMember_637855557963202844" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_The2021AcquisitionsMember_637855557963202844" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_VisualComplianceMember_637855557963202844" order="8" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember_637855557963202844" order="9" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember_637855557963202844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_StepcomMember_637855557963202844" order="10" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember_637855557963212848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_BesttransportMember_637855557963212848" order="11" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2020AcquisitionsMember" xlink:label="dsgx_The2020AcquisitionsMember_637855557963212848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_The2020AcquisitionsMember_637855557963212848" order="12" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember_637855557963212848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_AljexSoftwareIncMember_637855557963212848" order="13" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember_637855557963212848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_VelocityMailMember_637855557963212848" order="14" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember_637855557963212848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_PinPointMember_637855557963212848" order="15" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2019AcquisitionsMember" xlink:label="dsgx_The2019AcquisitionsMember_637855557963212848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_The2019AcquisitionsMember_637855557963212848" order="16" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2022AcquisitionsMember" xlink:label="dsgx_The2022AcquisitionsMember_637855557963212848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963202844" xlink:to="dsgx_The2022AcquisitionsMember_637855557963212848" 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_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637855557963212848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963202844" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637855557963212848" 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_637855557963212848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637855557963212848" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963212848" 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_637855557963212848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963212848" xlink:to="us-gaap_CustomerRelationshipsMember_637855557963212848" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember_637855557963212848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963212848" xlink:to="dsgx_ExistingTechnologyMember_637855557963212848" 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_637855557963222845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963212848" xlink:to="us-gaap_TradeNamesMember_637855557963222845" 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_637855557963222845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963212848" xlink:to="us-gaap_NoncompeteAgreementsMember_637855557963222845" 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_637855557963222845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963202844" xlink:to="dei_LegalEntityAxis_637855557963222845" 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_637855557963222845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963222845" xlink:to="dei_EntityDomain_637855557963222845" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963222845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963202844" xlink:to="us-gaap_StatementLineItems_637855557963222845" 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_637855557963222845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637855557963222845" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable_637855557963222845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="dsgx_BusinessCombinationConsiderationTransferredPayable_637855557963222845" 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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_637855557963222845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_637855557963222845" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_637855557963222845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_637855557963222845" 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_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_637855557963232847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_637855557963232847" 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_637855557963232847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_637855557963232847" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets_637855557963232847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets_637855557963232847" order="7" 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_637855557963232847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_637855557963232847" 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_637855557963232847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_637855557963232847" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability_637855557963232847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability_637855557963232847" order="10" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_637855557963232847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_637855557963232847" order="11" 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_637855557963242844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_637855557963242844" order="12" 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_637855557963242844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_637855557963242844" order="13" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_637855557963242844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_637855557963242844" order="14" 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_637855557963242844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_637855557963242844" order="15" 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_637855557963242844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_Goodwill_637855557963242844" order="16" 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_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637855557963242844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637855557963242844" order="17" 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_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable_637855557963242844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable_637855557963242844" 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_637855557963252844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_637855557963252844" order="19" 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_637855557963252844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_637855557963252844" order="20" 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_637855557963252844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963222845" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_637855557963252844" order="21" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals" xlink:type="extended" xlink:title="40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" xlink:label="statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" />
    <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_637855557963252844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" xlink:to="us-gaap_StatementTable_637855557963252844" 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_637855557963252844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963252844" xlink:to="us-gaap_BusinessAcquisitionAxis_637855557963252844" 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_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637855557963252844" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_PeoplevoxMember_637855557963262860" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_KontainersMember_637855557963262860" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_ShipTrackMember_637855557963262860" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_QuestawebMember_637855557963262860" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_PortrixMember_637855557963262860" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_GreenmileMember_637855557963262860" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_VisualComplianceMember_637855557963262860" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember_637855557963262860" order="8" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_StepcomMember_637855557963262860" order="9" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_BesttransportMember_637855557963262860" order="10" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_AljexSoftwareIncMember_637855557963262860" order="11" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember_637855557963262860" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_VelocityMailMember_637855557963262860" order="12" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember_637855557963272848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963262860" xlink:to="dsgx_PinPointMember_637855557963272848" order="13" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963272848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963252844" xlink:to="dei_LegalEntityAxis_637855557963272848" 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_637855557963272848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963272848" xlink:to="dei_EntityDomain_637855557963272848" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963272848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963252844" xlink:to="us-gaap_StatementLineItems_637855557963272848" 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_637855557963272848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963272848" xlink:to="us-gaap_CashAcquiredFromAcquisition_637855557963272848" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" xlink:label="statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" />
    <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_637855557963272848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" xlink:to="us-gaap_StatementTable_637855557963272848" 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_637855557963272848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963272848" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637855557963272848" 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_637855557963272848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637855557963272848" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963272848" 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_637855557963272848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963272848" xlink:to="us-gaap_CustomerRelationshipsMember_637855557963272848" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963272848" xlink:to="dsgx_ExistingTechnologyMember_637855557963282848" 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_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963272848" xlink:to="us-gaap_TradeNamesMember_637855557963282848" 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_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963272848" xlink:to="us-gaap_NoncompeteAgreementsMember_637855557963282848" 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_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963272848" xlink:to="us-gaap_BusinessAcquisitionAxis_637855557963282848" 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_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637855557963282848" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_PeoplevoxMember_637855557963282848" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_KontainersMember_637855557963282848" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_ShipTrackMember_637855557963282848" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_QuestawebMember_637855557963282848" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_PortrixMember_637855557963282848" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_GreenmileMember_637855557963282848" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_VisualComplianceMember_637855557963282848" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_637855557963282848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember_637855557963282848" order="8" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember_637855557963292844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_StepcomMember_637855557963292844" order="9" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember_637855557963292844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_BesttransportMember_637855557963292844" order="10" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember_637855557963292844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_AljexSoftwareIncMember_637855557963292844" order="11" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember_637855557963292844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_VelocityMailMember_637855557963292844" order="12" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember_637855557963292844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963282848" xlink:to="dsgx_PinPointMember_637855557963292844" order="13" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963292844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963272848" xlink:to="dei_LegalEntityAxis_637855557963292844" 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_637855557963292844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963292844" xlink:to="dei_EntityDomain_637855557963292844" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963292844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963272848" xlink:to="us-gaap_StatementLineItems_637855557963292844" 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_637855557963292844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963292844" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_637855557963292844" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details" xlink:label="statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details" />
    <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_637855557963302844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details" xlink:to="us-gaap_StatementTable_637855557963302844" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963302844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963302844" xlink:to="dei_LegalEntityAxis_637855557963302844" 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_637855557963302844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963302844" xlink:to="dei_EntityDomain_637855557963302844" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963302844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963302844" xlink:to="us-gaap_StatementLineItems_637855557963302844" 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_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_637855557963302844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963302844" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue_637855557963302844" 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_637855557963302844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963302844" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_637855557963302844" 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_637855557963302844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963302844" xlink:to="us-gaap_EarningsPerShareAbstract_637855557963302844" 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_637855557963302844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637855557963302844" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic_637855557963302844" 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_637855557963302844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637855557963302844" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted_637855557963302844" 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="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963312845" 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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963312845" xlink:to="us-gaap_IncomeStatementLocationAxis_637855557963312845" 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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis_637855557963312845" xlink:to="us-gaap_IncomeStatementLocationDomain_637855557963312845" 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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_637855557963312845" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_637855557963312845" 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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963312845" xlink:to="us-gaap_MeasurementInputTypeAxis_637855557963312845" 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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeAxis_637855557963312845" xlink:to="us-gaap_MeasurementInputTypeDomain_637855557963312845" 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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeDomain_637855557963312845" xlink:to="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_637855557963312845" 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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeDomain_637855557963312845" xlink:to="us-gaap_MeasurementInputDiscountRateMember_637855557963312845" 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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963312845" xlink:to="srt_RangeAxis_637855557963312845" 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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637855557963312845" xlink:to="srt_RangeMember_637855557963312845" 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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637855557963312845" xlink:to="srt_MinimumMember_637855557963312845" 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_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637855557963312845" xlink:to="srt_MaximumMember_637855557963312845" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963312845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963312845" xlink:to="dei_LegalEntityAxis_637855557963312845" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain_637855557963322845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963312845" xlink:to="dei_EntityDomain_637855557963322845" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963322845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963312845" xlink:to="us-gaap_StatementLineItems_637855557963322845" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_637855557963322845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963322845" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_637855557963322845" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_637855557963322845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963322845" xlink:to="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_637855557963322845" 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_DerivativeGainOnDerivative" xlink:label="us-gaap_DerivativeGainOnDerivative_637855557963322845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963322845" xlink:to="us-gaap_DerivativeGainOnDerivative_637855557963322845" 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_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_637855557963322845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963322845" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_637855557963322845" order="4" 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="dsgx-20220131.xsd#dsgx_statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" xlink:label="statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" />
    <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_637855557963322845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" xlink:to="us-gaap_StatementTable_637855557963322845" 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_637855557963322845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963322845" xlink:to="us-gaap_HedgingDesignationAxis_637855557963322845" 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_637855557963322845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis_637855557963322845" xlink:to="us-gaap_HedgingDesignationDomain_637855557963322845" 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_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationDomain_637855557963322845" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember_637855557963332844" 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_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationDomain_637855557963322845" xlink:to="us-gaap_NondesignatedMember_637855557963332844" 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_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963322845" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_637855557963332844" 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_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis_637855557963332844" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637855557963332844" 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_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637855557963332844" xlink:to="us-gaap_FairValueInputsLevel1Member_637855557963332844" 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_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637855557963332844" xlink:to="us-gaap_FairValueInputsLevel2Member_637855557963332844" 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_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637855557963332844" xlink:to="us-gaap_FairValueInputsLevel3Member_637855557963332844" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963322845" xlink:to="dei_LegalEntityAxis_637855557963332844" 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_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963332844" xlink:to="dei_EntityDomain_637855557963332844" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963322845" xlink:to="us-gaap_StatementLineItems_637855557963332844" 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_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963332844" xlink:to="us-gaap_DerivativeAssets_637855557963332844" 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_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_637855557963332844" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963332844" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_637855557963332844" 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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationAbstract" xlink:label="FairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationAbstract" />
    <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_637855557963342846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationAbstract" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_637855557963342846" 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_637855557963342846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_637855557963342846" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_637855557963342846" 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_637855557963342846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis_637855557963342846" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637855557963342846" 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_637855557963342846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637855557963342846" xlink:to="us-gaap_FairValueInputsLevel3Member_637855557963342846" 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_637855557963342846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_637855557963342846" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637855557963342846" 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_637855557963342846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637855557963342846" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_637855557963342846" 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_637855557963342846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637855557963342846" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_637855557963342846" 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_637855557963342846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637855557963342846" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_637855557963342846" 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_637855557963342846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637855557963342846" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_637855557963342846" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_637855557963342846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637855557963342846" xlink:to="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_637855557963342846" 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_6378555579633428461" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637855557963342846" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_6378555579633428461" 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="ReceivablesAbstract" />
    <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_637855557963352846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReceivablesAbstract" xlink:to="us-gaap_StatementTable_637855557963352846" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963352846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963352846" xlink:to="dei_LegalEntityAxis_637855557963352846" 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_637855557963352846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963352846" xlink:to="dei_EntityDomain_637855557963352846" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963352846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963352846" xlink:to="us-gaap_StatementLineItems_637855557963352846" 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_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent_637855557963352846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963352846" xlink:to="us-gaap_AccountsReceivableGrossCurrent_637855557963352846" 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_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637855557963352846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963352846" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637855557963352846" 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_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent_637855557963352846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963352846" xlink:to="us-gaap_AccountsReceivableNetCurrent_637855557963352846" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </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="ReceivablesAbstract" />
    <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_637855557963352846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReceivablesAbstract" xlink:to="us-gaap_StatementTable_637855557963352846" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963352846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963352846" xlink:to="dei_LegalEntityAxis_637855557963352846" 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_637855557963352846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963352846" xlink:to="dei_EntityDomain_637855557963352846" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963362845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963352846" xlink:to="us-gaap_StatementLineItems_637855557963362845" 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_UnbilledReceivablesCurrent" xlink:label="us-gaap_UnbilledReceivablesCurrent_637855557963362845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963362845" xlink:to="us-gaap_UnbilledReceivablesCurrent_637855557963362845" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PercentageOfAccountReceivable" xlink:label="dsgx_PercentageOfAccountReceivable_637855557963362845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963362845" xlink:to="dsgx_PercentageOfAccountReceivable_637855557963362845" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
  </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="ReceivablesAbstract" />
    <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_637855557963362845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReceivablesAbstract" xlink:to="us-gaap_StatementTable_637855557963362845" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963362845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963362845" xlink:to="dei_LegalEntityAxis_637855557963362845" 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_637855557963362845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963362845" xlink:to="dei_EntityDomain_637855557963362845" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963362845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963362845" xlink:to="us-gaap_StatementLineItems_637855557963362845" 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_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637855557963362845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963362845" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637855557963362845" 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_637855557963362845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963362845" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_637855557963362845" 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_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_637855557963362845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963362845" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_637855557963362845" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_637855557963362845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963362845" xlink:to="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_637855557963362845" 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_637855557963372846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963362845" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637855557963372846" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </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-20220131.xsd#dsgx_statement-statement-note-6-other-receivables-other-receivables-details" xlink:label="statement-statement-note-6-other-receivables-other-receivables-details" />
    <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_637855557963372846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-6-other-receivables-other-receivables-details" xlink:to="us-gaap_StatementTable_637855557963372846" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963372846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963372846" xlink:to="dei_LegalEntityAxis_637855557963372846" 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_637855557963372846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963372846" xlink:to="dei_EntityDomain_637855557963372846" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963372846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963372846" xlink:to="us-gaap_StatementLineItems_637855557963372846" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_637855557963372846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963372846" xlink:to="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_637855557963372846" 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_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent_637855557963372846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963372846" xlink:to="us-gaap_OtherAssetsCurrent_637855557963372846" 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_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent_637855557963372846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963372846" xlink:to="us-gaap_OtherReceivablesNetCurrent_637855557963372846" 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-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963372846" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963372846" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963372846" xlink:to="dei_LegalEntityAxis_637855557963382848" 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_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963382848" xlink:to="dei_EntityDomain_637855557963382848" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963372846" xlink:to="us-gaap_StatementLineItems_637855557963382848" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963382848" xlink:to="dsgx_AmountsRecoverableFromFundsHeldInEscrow_637855557963382848" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40801 - Disclosure - Property and Equipment - Property and Equipment (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-8-property-and-equipment-property-and-equipment-details" xlink:label="statement-statement-note-8-property-and-equipment-property-and-equipment-details" />
    <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_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-8-property-and-equipment-property-and-equipment-details" xlink:to="us-gaap_StatementTable_637855557963382848" 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_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963382848" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_637855557963382848" 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_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis_637855557963382848" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain_637855557963382848" 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_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637855557963382848" xlink:to="us-gaap_ComputerEquipmentMember_637855557963382848" 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_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637855557963382848" xlink:to="us-gaap_FurnitureAndFixturesMember_637855557963382848" 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_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637855557963382848" xlink:to="us-gaap_LeaseholdImprovementsMember_637855557963382848" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_EquipmentInstalledWithCustomersMember" xlink:label="dsgx_EquipmentInstalledWithCustomersMember_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637855557963382848" xlink:to="dsgx_EquipmentInstalledWithCustomersMember_637855557963382848" 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_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637855557963382848" xlink:to="us-gaap_AssetUnderConstructionMember_637855557963382848" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963382848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963382848" xlink:to="dei_LegalEntityAxis_637855557963382848" 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_637855557963392847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963382848" xlink:to="dei_EntityDomain_637855557963392847" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963392847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963382848" xlink:to="us-gaap_StatementLineItems_637855557963392847" 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_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_637855557963392847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963392847" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_637855557963392847" 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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_637855557963392847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963392847" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_637855557963392847" 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_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_637855557963392847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963392847" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_637855557963392847" 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="dsgx-20220131.xsd#dsgx_statement-statement-note-9-intangible-assets-intangible-assets-details" xlink:label="statement-statement-note-9-intangible-assets-intangible-assets-details" />
    <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_637855557963392847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-9-intangible-assets-intangible-assets-details" xlink:to="us-gaap_StatementTable_637855557963392847" 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_637855557963392847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963392847" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637855557963392847" 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_637855557963392847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637855557963392847" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963392847" 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_637855557963392847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963392847" xlink:to="us-gaap_CustomerRelationshipsMember_637855557963392847" 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_637855557963392847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963392847" xlink:to="us-gaap_DevelopedTechnologyRightsMember_637855557963392847" 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_637855557963392847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963392847" xlink:to="us-gaap_TradeNamesMember_637855557963392847" 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_637855557963402845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637855557963392847" xlink:to="us-gaap_NoncompeteAgreementsMember_637855557963402845" 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_637855557963402845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963392847" xlink:to="dei_LegalEntityAxis_637855557963402845" 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_637855557963402845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963402845" xlink:to="dei_EntityDomain_637855557963402845" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963402845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963392847" xlink:to="us-gaap_StatementLineItems_637855557963402845" 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_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_637855557963402845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963402845" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_637855557963402845" 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_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_637855557963402845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963402845" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_637855557963402845" 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_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_637855557963402845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963402845" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_637855557963402845" 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="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963402845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963402845" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963402845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963402845" xlink:to="dei_LegalEntityAxis_637855557963402845" 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_637855557963402845" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963402845" xlink:to="dei_EntityDomain_637855557963402845" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963412847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963402845" xlink:to="us-gaap_StatementLineItems_637855557963412847" 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_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_637855557963412847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963412847" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_637855557963412847" 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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_637855557963412847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963412847" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_637855557963412847" 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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_637855557963412847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963412847" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_637855557963412847" 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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_637855557963412847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963412847" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_637855557963412847" 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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_637855557963412847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963412847" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_637855557963412847" 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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_637855557963412847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963412847" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_637855557963412847" 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_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_637855557963412847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963412847" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_637855557963412847" order="7" 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-20220131.xsd#dsgx_statement-statement-note-10-goodwill-goodwill-details" xlink:label="statement-statement-note-10-goodwill-goodwill-details" />
    <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_637855557963412847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-10-goodwill-goodwill-details" xlink:to="us-gaap_StatementTable_637855557963412847" 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_637855557963412847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963412847" xlink:to="us-gaap_BusinessAcquisitionAxis_637855557963412847" 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_637855557963412847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637855557963412847" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963412847" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963412847" xlink:to="dsgx_VisualComplianceMember_637855557963422847" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963412847" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember_637855557963422847" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963412847" xlink:to="dsgx_StepcomMember_637855557963422847" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963412847" xlink:to="dsgx_BesttransportMember_637855557963422847" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963412847" xlink:to="dsgx_PeoplevoxMember_637855557963422847" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963412847" xlink:to="dsgx_KontainersMember_637855557963422847" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963412847" xlink:to="dsgx_ShipTrackMember_637855557963422847" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963412847" xlink:to="dsgx_QuestawebMember_637855557963422847" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963412847" xlink:to="dsgx_PortrixMember_637855557963422847" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963412847" xlink:to="dsgx_GreenmileMember_637855557963422847" order="10" 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_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963412847" xlink:to="dei_LegalEntityAxis_637855557963422847" 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_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963422847" xlink:to="dei_EntityDomain_637855557963422847" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963422847" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963412847" xlink:to="us-gaap_StatementLineItems_637855557963422847" 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_Goodwill" xlink:label="us-gaap_Goodwill_637855557963432868" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963422847" xlink:to="us-gaap_Goodwill_637855557963432868" 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_637855557963432868" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963422847" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod_637855557963432868" 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_637855557963432868" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963422847" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_637855557963432868" 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_6378555579634328681" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963422847" xlink:to="us-gaap_Goodwill_6378555579634328681" 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="dsgx-20220131.xsd#dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:label="statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" />
    <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_637855557963432868" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:to="us-gaap_StatementTable_637855557963432868" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963432868" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963432868" xlink:to="dei_LegalEntityAxis_637855557963432868" 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_637855557963432868" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963432868" xlink:to="dei_EntityDomain_637855557963432868" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963432868" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963432868" xlink:to="us-gaap_StatementLineItems_637855557963432868" 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_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_637855557963432868" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963432868" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_637855557963432868" 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_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_637855557963432868" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963432868" xlink:to="us-gaap_AccruedProfessionalFeesCurrent_637855557963432868" 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_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_637855557963442850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963432868" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_637855557963442850" 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_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent_637855557963442850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963432868" xlink:to="us-gaap_AccruedLiabilitiesCurrent_637855557963442850" 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="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963442850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963442850" 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_637855557963442850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963442850" xlink:to="us-gaap_CreditFacilityAxis_637855557963442850" 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_637855557963442850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis_637855557963442850" xlink:to="us-gaap_CreditFacilityDomain_637855557963442850" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember_637855557963442850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain_637855557963442850" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember_637855557963442850" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_637855557963442850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain_637855557963442850" xlink:to="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_637855557963442850" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember_637855557963442850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain_637855557963442850" xlink:to="dsgx_SeniorSecuredCreditFacilityMember_637855557963442850" 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_637855557963442850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963442850" xlink:to="us-gaap_DebtInstrumentAxis_637855557963442850" 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_637855557963442850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis_637855557963442850" xlink:to="us-gaap_DebtInstrumentNameDomain_637855557963442850" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember_637855557963502855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_637855557963442850" xlink:to="dsgx_SeniorSecuredCreditFacilityMember_637855557963502855" 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_637855557963502855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963442850" xlink:to="srt_RangeAxis_637855557963502855" 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_637855557963502855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637855557963502855" xlink:to="srt_RangeMember_637855557963502855" 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_637855557963502855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637855557963502855" xlink:to="srt_MaximumMember_637855557963502855" 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_637855557963502855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637855557963502855" xlink:to="srt_MinimumMember_637855557963502855" 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_637855557963502855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963442850" xlink:to="us-gaap_VariableRateAxis_637855557963502855" 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_637855557963502855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis_637855557963502855" xlink:to="us-gaap_VariableRateDomain_637855557963502855" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_637855557963502855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain_637855557963502855" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_637855557963502855" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963502855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963442850" xlink:to="dei_LegalEntityAxis_637855557963502855" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain_637855557963512850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963502855" xlink:to="dei_EntityDomain_637855557963512850" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963512850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963442850" xlink:to="us-gaap_StatementLineItems_637855557963512850" 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_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_637855557963512850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963512850" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_637855557963512850" 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_637855557963512850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963512850" xlink:to="us-gaap_DebtInstrumentTerm_637855557963512850" 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_637855557963512850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963512850" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_637855557963512850" 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_637855557963512850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963512850" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_637855557963512850" 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_637855557963512850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963512850" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_637855557963512850" 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_637855557963512850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963512850" xlink:to="us-gaap_LineOfCredit_637855557963512850" 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_637855557963512850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963512850" xlink:to="us-gaap_LettersOfCreditOutstandingAmount_637855557963512850" 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="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963522851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963522851" 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_637855557963522851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963522851" xlink:to="srt_RangeAxis_637855557963522851" order="1" 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_637855557963522851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637855557963522851" xlink:to="srt_RangeMember_637855557963522851" 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_637855557963522851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637855557963522851" xlink:to="srt_MaximumMember_637855557963522851" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963522851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963522851" xlink:to="dei_LegalEntityAxis_637855557963522851" 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_637855557963522851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963522851" xlink:to="dei_EntityDomain_637855557963522851" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963522851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963522851" xlink:to="us-gaap_StatementLineItems_637855557963522851" 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_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_637855557963522851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963522851" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_637855557963522851" 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_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm_637855557963522851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963522851" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm_637855557963522851" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-13-leases-components-of-operating-lease-expense-details" xlink:label="statement-statement-note-13-leases-components-of-operating-lease-expense-details" />
    <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_637855557963532849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-13-leases-components-of-operating-lease-expense-details" xlink:to="us-gaap_StatementTable_637855557963532849" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963532849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963532849" xlink:to="dei_LegalEntityAxis_637855557963532849" 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_637855557963532849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963532849" xlink:to="dei_EntityDomain_637855557963532849" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963532849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963532849" xlink:to="us-gaap_StatementLineItems_637855557963532849" 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_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost_637855557963532849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963532849" xlink:to="us-gaap_OperatingLeaseCost_637855557963532849" 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_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost_637855557963532849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963532849" xlink:to="us-gaap_ShortTermLeaseCost_637855557963532849" 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_LeaseCost" xlink:label="us-gaap_LeaseCost_637855557963532849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963532849" xlink:to="us-gaap_LeaseCost_637855557963532849" 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_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments_637855557963532849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963532849" xlink:to="us-gaap_OperatingLeasePayments_637855557963532849" 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_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_637855557963532849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963532849" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_637855557963532849" 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_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_637855557963532849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963532849" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_637855557963532849" 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_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_637855557963532849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963532849" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_637855557963532849" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:label="statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details" />
    <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_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:to="us-gaap_StatementTable_637855557963542848" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963542848" xlink:to="dei_LegalEntityAxis_637855557963542848" 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_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963542848" xlink:to="dei_EntityDomain_637855557963542848" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963542848" xlink:to="us-gaap_StatementLineItems_637855557963542848" 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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963542848" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637855557963542848" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963542848" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637855557963542848" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963542848" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637855557963542848" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963542848" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637855557963542848" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963542848" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_637855557963542848" 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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963542848" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_637855557963542848" order="6" 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_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963542848" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_637855557963542848" order="7" 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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963542848" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_637855557963542848" 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_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability_637855557963542848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963542848" xlink:to="us-gaap_OperatingLeaseLiability_637855557963542848" 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_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_637855557963552849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963542848" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_637855557963552849" 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_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_637855557963552849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963542848" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_637855557963552849" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </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-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963552849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963552849" 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_637855557963552849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963552849" xlink:to="us-gaap_BusinessAcquisitionAxis_637855557963552849" 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_637855557963552849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637855557963552849" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963552849" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_COREKontainersAndShipTrackMember" xlink:label="dsgx_COREKontainersAndShipTrackMember_637855557963552849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963552849" xlink:to="dsgx_COREKontainersAndShipTrackMember_637855557963552849" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963552849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963552849" xlink:to="dei_LegalEntityAxis_637855557963552849" 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_637855557963552849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963552849" xlink:to="dei_EntityDomain_637855557963552849" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963552849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963552849" xlink:to="us-gaap_StatementLineItems_637855557963552849" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_637855557963552849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963552849" xlink:to="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_637855557963552849" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_637855557963552849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963552849" xlink:to="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_637855557963552849" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_637855557963562848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963552849" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_637855557963562848" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_637855557963562848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963552849" xlink:to="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_637855557963562848" 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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637855557963562848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963552849" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637855557963562848" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_637855557963562848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963552849" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_637855557963562848" 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_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_637855557963562848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963552849" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_637855557963562848" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963562848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963562848" 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_637855557963562848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963562848" xlink:to="us-gaap_SubsidiarySaleOfStockAxis_637855557963562848" 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_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_637855557963562848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis_637855557963562848" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain_637855557963562848" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember_637855557963562848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain_637855557963562848" xlink:to="dsgx_ShelfProspectusMember_637855557963562848" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_The2020BaseShelfProspectusMember" xlink:label="dsgx_The2020BaseShelfProspectusMember_637855557963572849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain_637855557963562848" xlink:to="dsgx_The2020BaseShelfProspectusMember_637855557963572849" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963572849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963562848" xlink:to="dei_LegalEntityAxis_637855557963572849" 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_637855557963572849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963572849" xlink:to="dei_EntityDomain_637855557963572849" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963572849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963562848" xlink:to="us-gaap_StatementLineItems_637855557963572849" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShelfProspectusPeriod" xlink:label="dsgx_ShelfProspectusPeriod_637855557963572849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963572849" xlink:to="dsgx_ShelfProspectusPeriod_637855557963572849" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShelfProspectusMaximumAmount" xlink:label="dsgx_ShelfProspectusMaximumAmount_637855557963572849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963572849" xlink:to="dsgx_ShelfProspectusMaximumAmount_637855557963572849" 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_SharesIssuedPricePerShare" xlink:label="us-gaap_SharesIssuedPricePerShare_637855557963572849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963572849" xlink:to="us-gaap_SharesIssuedPricePerShare_637855557963572849" 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_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_637855557963572849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963572849" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_637855557963572849" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_OverallotmentOption" xlink:label="dsgx_OverallotmentOption_637855557963572849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963572849" xlink:to="dsgx_OverallotmentOption_637855557963572849" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ProceedsFromIssuanceOfCommonStockNet" xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet_637855557963572849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963572849" xlink:to="dsgx_ProceedsFromIssuanceOfCommonStockNet_637855557963572849" 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_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_637855557963572849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963572849" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_637855557963572849" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails" xlink:type="extended" xlink:title="41502 - Disclosure - Share Capital - Common Shares Outstanding (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-15-share-capital-common-shares-outstanding-details" xlink:label="statement-statement-note-15-share-capital-common-shares-outstanding-details" />
    <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_637855557963582850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-15-share-capital-common-shares-outstanding-details" xlink:to="us-gaap_StatementTable_637855557963582850" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963582850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963582850" xlink:to="dei_LegalEntityAxis_637855557963582850" 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_637855557963582850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963582850" xlink:to="dei_EntityDomain_637855557963582850" 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_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637855557963582850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963582850" xlink:to="us-gaap_BusinessAcquisitionAxis_637855557963582850" 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_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963582850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637855557963582850" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963582850" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember_637855557963582850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557963582850" xlink:to="dsgx_VisualComplianceMember_637855557963582850" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963582850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963582850" xlink:to="us-gaap_StatementLineItems_637855557963582850" 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_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding_637855557963582850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963582850" xlink:to="us-gaap_CommonStockSharesOutstanding_637855557963582850" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised_637855557963582850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963582850" xlink:to="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised_637855557963582850" 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_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_637855557963582850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963582850" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_637855557963582850" 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_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_637855557963582850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963582850" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_637855557963582850" 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_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding_6378555579635828501" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963582850" xlink:to="us-gaap_CommonStockSharesOutstanding_6378555579635828501" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </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="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963592859" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963592859" 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_637855557963592859" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963592859" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_637855557963592859" 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_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_637855557963592859" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_637855557963592859" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_637855557963592859" 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_637855557963592859" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_637855557963592859" xlink:to="us-gaap_EmployeeStockOptionMember_637855557963592859" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember_637855557963592859" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_637855557963592859" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember_637855557963592859" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember_637855557963592859" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_637855557963592859" xlink:to="dsgx_PSUsAndRSUsMember_637855557963592859" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963592859" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963592859" xlink:to="dei_LegalEntityAxis_637855557963592859" 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_637855557963592859" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963592859" xlink:to="dei_EntityDomain_637855557963592859" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963592859" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963592859" xlink:to="us-gaap_StatementLineItems_637855557963592859" 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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_637855557963592859" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963592859" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_637855557963592859" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" xlink:label="statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" />
    <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_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" xlink:to="us-gaap_StatementTable_637855557963602848" 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_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963602848" xlink:to="us-gaap_AwardTypeAxis_637855557963602848" 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637855557963602848" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963602848" 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_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963602848" xlink:to="us-gaap_EmployeeStockOptionMember_637855557963602848" 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_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963602848" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_637855557963602848" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963602848" xlink:to="dei_LegalEntityAxis_637855557963602848" 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_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963602848" xlink:to="dei_EntityDomain_637855557963602848" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963602848" xlink:to="us-gaap_StatementLineItems_637855557963602848" 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_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963602848" xlink:to="us-gaap_NetIncomeLoss_637855557963602848" 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_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963602848" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637855557963602848" 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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963602848" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_637855557963602848" 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_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637855557963602848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963602848" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637855557963602848" 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_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract_637855557963612851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963602848" xlink:to="us-gaap_EarningsPerShareAbstract_637855557963612851" 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_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic_637855557963612851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637855557963612851" xlink:to="us-gaap_EarningsPerShareBasic_637855557963612851" 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_637855557963612851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637855557963612851" xlink:to="us-gaap_EarningsPerShareDiluted_637855557963612851" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </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="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963612851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963612851" 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_637855557963612851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963612851" xlink:to="us-gaap_PlanNameAxis_637855557963612851" 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_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain_637855557963612851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis_637855557963612851" xlink:to="us-gaap_PlanNameDomain_637855557963612851" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember_637855557963612851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_637855557963612851" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember_637855557963612851" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember_637855557963612851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_637855557963612851" xlink:to="dsgx_DeferredShareUnitPlanMember_637855557963612851" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CashsettledRestrictedShareUnitMember" xlink:label="dsgx_CashsettledRestrictedShareUnitMember_637855557963612851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_637855557963612851" xlink:to="dsgx_CashsettledRestrictedShareUnitMember_637855557963612851" 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_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_637855557963612851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963612851" xlink:to="us-gaap_AwardTypeAxis_637855557963612851" 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637855557963612851" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963622852" 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_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963622852" xlink:to="us-gaap_EmployeeStockOptionMember_637855557963622852" 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_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963622852" xlink:to="us-gaap_PerformanceSharesMember_637855557963622852" 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_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963622852" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_637855557963622852" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963612851" xlink:to="dei_LegalEntityAxis_637855557963622852" 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_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963622852" xlink:to="dei_EntityDomain_637855557963622852" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963612851" xlink:to="us-gaap_StatementLineItems_637855557963622852" 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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_637855557963622852" 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_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_637855557963622852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637855557963622852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_637855557963622852" 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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_637855557963622852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_637855557963622852" 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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_637855557963632850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_637855557963632850" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_637855557963632850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_637855557963632850" order="7" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637855557963632850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637855557963632850" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637855557963632850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637855557963632850" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_637855557963632850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_637855557963632850" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_637855557963632850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_637855557963632850" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredShareUnitsOutstandingNumber" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber_637855557963632850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="dsgx_DeferredShareUnitsOutstandingNumber_637855557963632850" order="12" 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_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_637855557963632850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_637855557963632850" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredShareUnitsGrantsInPeriod" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod_637855557963632850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="dsgx_DeferredShareUnitsGrantsInPeriod_637855557963632850" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_637855557963642850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_637855557963642850" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredShareUnitsCompensationExpense" xlink:label="dsgx_DeferredShareUnitsCompensationExpense_637855557963642850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="dsgx_DeferredShareUnitsCompensationExpense_637855557963642850" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_637855557963642850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963622852" xlink:to="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_637855557963642850" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" xlink:label="statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" />
    <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_637855557963642850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" xlink:to="us-gaap_StatementTable_637855557963642850" 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_637855557963642850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963642850" xlink:to="us-gaap_IncomeStatementLocationAxis_637855557963642850" 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_637855557963642850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis_637855557963642850" xlink:to="us-gaap_IncomeStatementLocationDomain_637855557963642850" 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_637855557963642850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_637855557963642850" xlink:to="us-gaap_CostOfSalesMember_637855557963642850" 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_637855557963642850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_637855557963642850" xlink:to="us-gaap_SellingAndMarketingExpenseMember_637855557963642850" 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_637855557963652848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_637855557963642850" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember_637855557963652848" 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_637855557963652848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_637855557963642850" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_637855557963652848" 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_637855557963652848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963642850" xlink:to="dei_LegalEntityAxis_637855557963652848" 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_637855557963652848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963652848" xlink:to="dei_EntityDomain_637855557963652848" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963652848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963642850" xlink:to="us-gaap_StatementLineItems_637855557963652848" 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_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_637855557963652848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963652848" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_637855557963652848" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" xlink:label="statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" />
    <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_637855557963652848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" xlink:to="us-gaap_StatementTable_637855557963652848" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963652848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963652848" xlink:to="dei_LegalEntityAxis_637855557963652848" 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_637855557963652848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963652848" xlink:to="dei_EntityDomain_637855557963652848" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963652848" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963652848" xlink:to="us-gaap_StatementLineItems_637855557963652848" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_637855557963662849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963652848" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_637855557963662849" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_637855557963662849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963652848" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_637855557963662849" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_637855557963662849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963652848" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_637855557963662849" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_637855557963662849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963652848" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_637855557963662849" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" xlink:label="statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" />
    <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_637855557963662849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" xlink:to="us-gaap_StatementTable_637855557963662849" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963662849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963662849" xlink:to="dei_LegalEntityAxis_637855557963662849" 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_637855557963662849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963662849" xlink:to="dei_EntityDomain_637855557963662849" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963662849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963662849" xlink:to="us-gaap_StatementLineItems_637855557963662849" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637855557963662849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637855557963662849" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_637855557963662849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_637855557963662849" order="2" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_637855557963662849" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_637855557963662849" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_637855557963672850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_637855557963672850" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637855557963672850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637855557963672850" 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_637855557963672850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_637855557963672850" 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_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_637855557963672850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_637855557963672850" 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_637855557963672850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_637855557963672850" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_637855557963672850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_637855557963672850" order="9" 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_637855557963672850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_637855557963672850" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637855557963672850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637855557963672850" order="11" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_637855557963672850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_637855557963672850" order="12" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_637855557963672850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_637855557963672850" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637855557963672850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637855557963672850" order="14" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637855557963682851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637855557963682851" order="15" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637855557963682851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637855557963682851" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_637855557963682851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_637855557963682851" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_637855557963682851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_637855557963682851" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_637855557963682851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_637855557963682851" order="19" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_637855557963682851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963662849" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_637855557963682851" order="20" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" xlink:type="extended" xlink:title="41705 - Disclosure - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" xlink:label="statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" />
    <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_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" xlink:to="us-gaap_StatementTable_637855557963692851" 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963692851" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_637855557963692851" 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_637855557963692851" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_637855557963692851" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range1Member" xlink:label="dsgx_Range1Member_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_637855557963692851" xlink:to="dsgx_Range1Member_637855557963692851" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range2Member" xlink:label="dsgx_Range2Member_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_637855557963692851" xlink:to="dsgx_Range2Member_637855557963692851" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range3Member" xlink:label="dsgx_Range3Member_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_637855557963692851" xlink:to="dsgx_Range3Member_637855557963692851" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Range4Member" xlink:label="dsgx_Range4Member_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain_637855557963692851" xlink:to="dsgx_Range4Member_637855557963692851" 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_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963692851" xlink:to="dei_LegalEntityAxis_637855557963692851" 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_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963692851" xlink:to="dei_EntityDomain_637855557963692851" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963692851" xlink:to="us-gaap_StatementLineItems_637855557963692851" 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963692851" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit_637855557963692851" 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963692851" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit_637855557963692851" 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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963692851" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1_637855557963692851" 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions_637855557963692851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963692851" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions_637855557963692851" 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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2_637855557963702852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963692851" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2_637855557963702852" 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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_637855557963702852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963692851" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_637855557963702852" 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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_637855557963702852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963692851" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_637855557963702852" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" xlink:label="statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" />
    <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_637855557963702852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" xlink:to="us-gaap_StatementTable_637855557963702852" 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_637855557963702852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963702852" xlink:to="us-gaap_PlanNameAxis_637855557963702852" 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_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain_637855557963702852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis_637855557963702852" xlink:to="us-gaap_PlanNameDomain_637855557963702852" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember_637855557963702852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_637855557963702852" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember_637855557963702852" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963702852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963702852" xlink:to="dei_LegalEntityAxis_637855557963702852" 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_637855557963702852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963702852" xlink:to="dei_EntityDomain_637855557963702852" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963702852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963702852" xlink:to="us-gaap_StatementLineItems_637855557963702852" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_637855557963712852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963702852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_637855557963712852" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_637855557963712852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963702852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_637855557963712852" order="2" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637855557963712852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963702852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637855557963712852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637855557963712852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963702852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637855557963712852" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_637855557963712852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963702852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_637855557963712852" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" />
    <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_637855557963712852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963702852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_637855557963712852" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_637855557963712852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963702852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_637855557963712852" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_637855557963712852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963702852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_637855557963712852" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_6378555579637128521" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963702852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_6378555579637128521" order="9" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_6378555579637128521" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963702852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_6378555579637128521" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xlink:type="extended" xlink:title="41707 - 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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" xlink:label="statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" />
    <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_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" xlink:to="us-gaap_StatementTable_637855557963722852" 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_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963722852" xlink:to="us-gaap_AwardTypeAxis_637855557963722852" 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963722852" 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_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963722852" xlink:to="us-gaap_PerformanceSharesMember_637855557963722852" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963722852" xlink:to="dei_LegalEntityAxis_637855557963722852" 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_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963722852" xlink:to="dei_EntityDomain_637855557963722852" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963722852" xlink:to="us-gaap_StatementLineItems_637855557963722852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637855557963722852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637855557963722852" order="2" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_637855557963722852" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_637855557963722852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_637855557963722852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_637855557963722852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637855557963732851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637855557963732851" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_637855557963732851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_637855557963732851" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_637855557963732851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_637855557963732851" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_637855557963732851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_637855557963732851" order="9" 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_637855557963732851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_637855557963732851" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637855557963732851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637855557963732851" order="11" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637855557963732851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637855557963732851" order="12" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_637855557963732851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_637855557963732851" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637855557963732851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637855557963732851" order="14" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637855557963732851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637855557963732851" order="15" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637855557963742852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637855557963742852" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_637855557963742852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_637855557963742852" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_637855557963742852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_637855557963742852" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_637855557963742852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_637855557963742852" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_637855557963742852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963722852" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_637855557963742852" order="20" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xlink:type="extended" xlink:title="41708 - 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="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" xlink:label="statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" />
    <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_637855557963742852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" xlink:to="us-gaap_StatementTable_637855557963742852" 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_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963742852" xlink:to="us-gaap_AwardTypeAxis_637855557963752852" 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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963752852" 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_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637855557963752852" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_637855557963752852" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963742852" xlink:to="dei_LegalEntityAxis_637855557963752852" 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_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963752852" xlink:to="dei_EntityDomain_637855557963752852" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963742852" xlink:to="us-gaap_StatementLineItems_637855557963752852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637855557963752852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637855557963752852" order="2" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_637855557963752852" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_637855557963752852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_637855557963752852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637855557963752852" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_637855557963752852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_637855557963752852" order="7" 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_637855557963762851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_637855557963762851" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637855557963762851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637855557963762851" order="9" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637855557963762851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637855557963762851" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_637855557963762851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_637855557963762851" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637855557963762851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637855557963762851" order="12" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637855557963762851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637855557963762851" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637855557963762851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637855557963762851" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_637855557963762851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_637855557963762851" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_637855557963762851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_637855557963762851" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_637855557963762851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_637855557963762851" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_637855557963772850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963752852" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_637855557963772850" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" xlink:type="extended" xlink:title="41709 - Disclosure - Stock-based Compensation Plans - Summary of CRSU Plan Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" xlink:label="statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" />
    <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_637855557963772850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" xlink:to="us-gaap_StatementTable_637855557963772850" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963772850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963772850" xlink:to="dei_LegalEntityAxis_637855557963772850" 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_637855557963772850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963772850" xlink:to="dei_EntityDomain_637855557963772850" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963772850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963772850" xlink:to="us-gaap_StatementLineItems_637855557963772850" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber_637855557963772850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963772850" xlink:to="dsgx_CRSUAwardsOutstandingNumber_637855557963772850" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife_637855557963772850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963772850" xlink:to="dsgx_CRSUAwardsWeightedAverageContractualLife_637855557963772850" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardsGrantsInPeriod" xlink:label="dsgx_CRSUAwardsGrantsInPeriod_637855557963772850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963772850" xlink:to="dsgx_CRSUAwardsGrantsInPeriod_637855557963772850" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardsVestedAndSettledInCash" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash_637855557963772850" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963772850" xlink:to="dsgx_CRSUAwardsVestedAndSettledInCash_637855557963772850" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardsForfeitedInPeriod" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod_637855557963782852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963772850" xlink:to="dsgx_CRSUAwardsForfeitedInPeriod_637855557963782852" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber_637855557963782852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963772850" xlink:to="dsgx_CRSUAwardsOutstandingNumber_637855557963782852" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardNonvestedNumber" xlink:label="dsgx_CRSUAwardNonvestedNumber_637855557963782852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963772850" xlink:to="dsgx_CRSUAwardNonvestedNumber_637855557963782852" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_637855557963782852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963772850" xlink:to="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_637855557963782852" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails" xlink:type="extended" xlink:title="41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" xlink:label="statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" />
    <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_637855557963782852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" xlink:to="us-gaap_StatementTable_637855557963782852" 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_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis_637855557963782852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963782852" xlink:to="us-gaap_IncomeTaxAuthorityAxis_637855557963782852" 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_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain_637855557963782852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis_637855557963782852" xlink:to="us-gaap_IncomeTaxAuthorityDomain_637855557963782852" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_CA" xlink:label="country_CA_637855557963782852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637855557963782852" xlink:to="country_CA_637855557963782852" 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_637855557963782852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637855557963782852" xlink:to="country_US_637855557963782852" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember_637855557963782852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637855557963782852" xlink:to="dsgx_OtherCountriesMember_637855557963782852" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963782852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963782852" xlink:to="dei_LegalEntityAxis_637855557963782852" 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_637855557963792852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963782852" xlink:to="dei_EntityDomain_637855557963792852" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963792852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963782852" xlink:to="us-gaap_StatementLineItems_637855557963792852" 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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637855557963792852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963792852" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637855557963792852" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" xlink:type="extended" xlink:title="41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" xlink:label="statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" />
    <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_637855557963792852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" xlink:to="us-gaap_StatementTable_637855557963792852" 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_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis_637855557963792852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963792852" xlink:to="us-gaap_IncomeTaxAuthorityAxis_637855557963792852" 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_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain_637855557963792852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis_637855557963792852" xlink:to="us-gaap_IncomeTaxAuthorityDomain_637855557963792852" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_CA" xlink:label="country_CA_637855557963792852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637855557963792852" xlink:to="country_CA_637855557963792852" 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_637855557963792852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637855557963792852" xlink:to="country_US_637855557963792852" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember_637855557963792852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637855557963792852" xlink:to="dsgx_OtherCountriesMember_637855557963792852" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963792852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963792852" xlink:to="dei_LegalEntityAxis_637855557963792852" 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_637855557963802852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963792852" xlink:to="dei_EntityDomain_637855557963802852" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963802852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963792852" xlink:to="us-gaap_StatementLineItems_637855557963802852" 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_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_637855557963802852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_637855557963802852" 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_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_637855557963802852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_637855557963802852" 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_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_637855557963802852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637855557963802852" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" xlink:type="extended" xlink:title="41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:label="statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" />
    <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_637855557963802852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:to="us-gaap_StatementTable_637855557963802852" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963802852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963802852" xlink:to="dei_LegalEntityAxis_637855557963802852" 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_637855557963802852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963802852" xlink:to="dei_EntityDomain_637855557963802852" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963802852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963802852" xlink:to="us-gaap_StatementLineItems_637855557963802852" 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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_637855557963802852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities_637855557963802852" 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_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_637855557963802852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_637855557963802852" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes_637855557963812855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="dsgx_DeferredTaxAssetsCorporateMinimumTaxes_637855557963812855" 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_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_637855557963812855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_637855557963812855" 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_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_637855557963812855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_637855557963812855" 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_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross_637855557963812855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_DeferredTaxAssetsGross_637855557963812855" 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_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_637855557963812855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets_637855557963812855" 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_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_637855557963812855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_637855557963812855" 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_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_637855557963812855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_637855557963812855" order="9" 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_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities_637855557963812855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_DeferredIncomeTaxLiabilities_637855557963812855" order="10" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_637855557963812855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance_637855557963812855" order="11" 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_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_637855557963812855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_637855557963812855" order="12" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1_637855557963812855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963802852" xlink:to="dsgx_DeferredTaxAssetsLiabilitesNet1_637855557963812855" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" xlink:type="extended" xlink:title="41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" xlink:label="statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" />
    <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_637855557963822852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" xlink:to="us-gaap_StatementTable_637855557963822852" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963822852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963822852" xlink:to="dei_LegalEntityAxis_637855557963822852" 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_637855557963822852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963822852" xlink:to="dei_EntityDomain_637855557963822852" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis_637855557963822852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963822852" xlink:to="srt_StatementScenarioAxis_637855557963822852" 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_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain_637855557963822852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementScenarioAxis_637855557963822852" xlink:to="srt_ScenarioUnspecifiedDomain_637855557963822852" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AdjustmentForRoundingMember" xlink:label="dsgx_AdjustmentForRoundingMember_637855557963822852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ScenarioUnspecifiedDomain_637855557963822852" xlink:to="dsgx_AdjustmentForRoundingMember_637855557963822852" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963822852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963822852" xlink:to="us-gaap_StatementLineItems_637855557963822852" 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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637855557963822852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637855557963822852" 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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_637855557963822852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_637855557963822852" 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_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_637855557963822852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_637855557963822852" 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_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_637855557963822852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_637855557963822852" 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_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_637855557963832853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_637855557963832853" 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_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_637855557963832853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate_637855557963832853" 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_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_637855557963832853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_637855557963832853" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_637855557963832853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions_637855557963832853" 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_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_637855557963832853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_637855557963832853" 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_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_637855557963832853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_637855557963832853" 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_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments_637855557963832853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments_637855557963832853" order="11" 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_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_637855557963832853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963822852" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637855557963832853" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" xlink:type="extended" xlink:title="41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" xlink:label="statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" />
    <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_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" xlink:to="us-gaap_StatementTable_637855557963842851" 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_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963842851" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis_637855557963842851" 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_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis_637855557963842851" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain_637855557963842851" 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_CanadaRevenueAgencyMember" xlink:label="us-gaap_CanadaRevenueAgencyMember_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain_637855557963842851" xlink:to="us-gaap_CanadaRevenueAgencyMember_637855557963842851" 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_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain_637855557963842851" xlink:to="us-gaap_InternalRevenueServiceIRSMember_637855557963842851" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_EmeaIncomeTaxAuthorityMember" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain_637855557963842851" xlink:to="dsgx_EmeaIncomeTaxAuthorityMember_637855557963842851" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain_637855557963842851" xlink:to="dsgx_AsiaPacificIncomeTaxAuthorityMember_637855557963842851" 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_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963842851" xlink:to="us-gaap_IncomeTaxAuthorityAxis_637855557963842851" 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_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis_637855557963842851" xlink:to="us-gaap_IncomeTaxAuthorityDomain_637855557963842851" 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_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637855557963842851" xlink:to="us-gaap_ForeignCountryMember_637855557963842851" 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_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityDomain_637855557963842851" xlink:to="us-gaap_DomesticCountryMember_637855557963842851" 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_TaxPeriodAxis" xlink:label="us-gaap_TaxPeriodAxis_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963842851" xlink:to="us-gaap_TaxPeriodAxis_637855557963842851" 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_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain_637855557963842851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodAxis_637855557963842851" xlink:to="us-gaap_TaxPeriodDomain_637855557963842851" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2022Member" xlink:label="dsgx_TaxYear2022Member_637855557963852854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_637855557963842851" xlink:to="dsgx_TaxYear2022Member_637855557963852854" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2023Member" xlink:label="dsgx_TaxYear2023Member_637855557963852854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_637855557963842851" xlink:to="dsgx_TaxYear2023Member_637855557963852854" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2024Member" xlink:label="dsgx_TaxYear2024Member_637855557963852854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_637855557963842851" xlink:to="dsgx_TaxYear2024Member_637855557963852854" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2025Member" xlink:label="dsgx_TaxYear2025Member_637855557963852854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_637855557963842851" xlink:to="dsgx_TaxYear2025Member_637855557963852854" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_TaxYear2026Member" xlink:label="dsgx_TaxYear2026Member_637855557963852854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_637855557963842851" xlink:to="dsgx_TaxYear2026Member_637855557963852854" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_AfterTaxYear2026Member" xlink:label="dsgx_AfterTaxYear2026Member_637855557963852854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodDomain_637855557963842851" xlink:to="dsgx_AfterTaxYear2026Member_637855557963852854" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963852854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963842851" xlink:to="dei_LegalEntityAxis_637855557963852854" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain_637855557963852854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963852854" xlink:to="dei_EntityDomain_637855557963852854" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963852854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963842851" xlink:to="us-gaap_StatementLineItems_637855557963852854" 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_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards_637855557963852854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963852854" xlink:to="us-gaap_OperatingLossCarryforwards_637855557963852854" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" xlink:type="extended" xlink:title="41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" xlink:label="statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" />
    <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_637855557963862852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" xlink:to="us-gaap_StatementTable_637855557963862852" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963862852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963862852" xlink:to="dei_LegalEntityAxis_637855557963862852" 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_637855557963862852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963862852" xlink:to="dei_EntityDomain_637855557963862852" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963862852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963862852" xlink:to="us-gaap_StatementLineItems_637855557963862852" 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_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_637855557963862852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963862852" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_637855557963862852" 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_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_637855557963862852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963862852" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_637855557963862852" 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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_637855557963862852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963862852" xlink:to="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_637855557963862852" 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_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_6378555579638628521" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963862852" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_6378555579638628521" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" xlink:type="extended" xlink:title="41807 - Disclosure - Income Taxes - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963872853" 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_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963872853" xlink:to="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_637855557963872853" 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_ChangeInAccountingPrincipleMember" xlink:label="us-gaap_ChangeInAccountingPrincipleMember_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_637855557963872853" xlink:to="us-gaap_ChangeInAccountingPrincipleMember_637855557963872853" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:label="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInAccountingPrincipleMember_637855557963872853" xlink:to="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember_637855557963872853" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963872853" xlink:to="dei_LegalEntityAxis_637855557963872853" 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_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963872853" xlink:to="dei_EntityDomain_637855557963872853" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963872853" xlink:to="us-gaap_StatementLineItems_637855557963872853" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_IncomeBeforeTaxesPercent" xlink:label="dsgx_IncomeBeforeTaxesPercent_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963872853" xlink:to="dsgx_IncomeBeforeTaxesPercent_637855557963872853" 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_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963872853" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations_637855557963872853" 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_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963872853" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit_637855557963872853" 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_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963872853" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_637855557963872853" 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_UndistributedEarningsOfForeignSubsidiaries" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963872853" xlink:to="us-gaap_UndistributedEarningsOfForeignSubsidiaries_637855557963872853" 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_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_637855557963872853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963872853" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_637855557963872853" 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_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_637855557963882855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963872853" xlink:to="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_637855557963882855" order="7" 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_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_637855557963882855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963872853" xlink:to="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_637855557963882855" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="NotesToFinancialStatementsAbstract" />
    <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_637855557963882855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable_637855557963882855" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963882855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963882855" xlink:to="dei_LegalEntityAxis_637855557963882855" 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_637855557963882855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963882855" xlink:to="dei_EntityDomain_637855557963882855" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963882855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963882855" xlink:to="us-gaap_StatementLineItems_637855557963882855" 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_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability_637855557963882855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="us-gaap_ContractWithCustomerLiability_637855557963882855" 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_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_637855557963882855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_637855557963882855" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_637855557963882855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_637855557963882855" 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_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_637855557963892853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_637855557963892853" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_637855557963892853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_637855557963892853" 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_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability_637855557963892853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="us-gaap_ContractWithCustomerLiability_637855557963892853" order="6" 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_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_637855557963892853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_637855557963892853" order="7" 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_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_637855557963892853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent_637855557963892853" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606_637855557963892853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606_637855557963892853" 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_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet_637855557963892853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="us-gaap_ContractWithCustomerAssetNet_637855557963892853" 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_637855557963892853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable_637855557963892853" order="11" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet_637855557963892853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet_637855557963892853" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_637855557963892853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_637855557963892853" order="13" 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_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet_6378555579638928531" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963882855" xlink:to="us-gaap_ContractWithCustomerAssetNet_6378555579638928531" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details" xlink:type="extended" xlink:title="41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 1 (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963902853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963902853" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963902853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963902853" xlink:to="dei_LegalEntityAxis_637855557963902853" 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_637855557963902853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963902853" xlink:to="dei_EntityDomain_637855557963902853" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963902853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963902853" xlink:to="us-gaap_StatementLineItems_637855557963902853" 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_CapitalizedContractCostNet" xlink:label="us-gaap_CapitalizedContractCostNet_637855557963902853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963902853" xlink:to="us-gaap_CapitalizedContractCostNet_637855557963902853" 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_CapitalizedContractCostAmortization" xlink:label="us-gaap_CapitalizedContractCostAmortization_637855557963902853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963902853" xlink:to="us-gaap_CapitalizedContractCostAmortization_637855557963902853" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details" xlink:type="extended" xlink:title="41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 2 (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963902853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963902853" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963902853" xlink:to="dei_LegalEntityAxis_637855557963912853" 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_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963912853" xlink:to="dei_EntityDomain_637855557963912853" 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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963902853" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_637855557963912853" 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_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963902853" xlink:to="us-gaap_StatementLineItems_637855557963912853" 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_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963912853" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_637855557963912853" 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_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963912853" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage_637855557963912853" 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_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963912853" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_637855557963912853" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:label="statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" />
    <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_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:to="us-gaap_StatementTable_637855557963912853" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963912853" xlink:to="dei_LegalEntityAxis_637855557963912853" 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_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963912853" xlink:to="dei_EntityDomain_637855557963912853" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963912853" xlink:to="us-gaap_StatementLineItems_637855557963912853" 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_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_637855557963912853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963912853" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_637855557963912853" 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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637855557963922857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963912853" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637855557963922857" 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_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges_637855557963922857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963912853" xlink:to="us-gaap_RestructuringCharges_637855557963922857" 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_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense_637855557963922857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963912853" xlink:to="us-gaap_OtherNonoperatingExpense_637855557963922857" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails" xlink:type="extended" xlink:title="42002 - Disclosure - Other Charges - Restructuring Provision (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_statement-statement-note-20-other-charges-restructuring-provision-details" xlink:label="statement-statement-note-20-other-charges-restructuring-provision-details" />
    <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_637855557963922857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-20-other-charges-restructuring-provision-details" xlink:to="us-gaap_StatementTable_637855557963922857" 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_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis_637855557963922857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963922857" xlink:to="us-gaap_RestructuringCostAndReserveAxis_637855557963922857" 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_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain_637855557963922857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis_637855557963922857" xlink:to="us-gaap_TypeOfRestructuringDomain_637855557963922857" 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_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember_637855557963922857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfRestructuringDomain_637855557963922857" xlink:to="us-gaap_EmployeeSeveranceMember_637855557963922857" 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_FacilityClosingMember" xlink:label="us-gaap_FacilityClosingMember_637855557963922857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfRestructuringDomain_637855557963922857" xlink:to="us-gaap_FacilityClosingMember_637855557963922857" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963922857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963922857" xlink:to="dei_LegalEntityAxis_637855557963922857" 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_637855557963922857" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963922857" xlink:to="dei_EntityDomain_637855557963922857" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963972853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963922857" xlink:to="us-gaap_StatementLineItems_637855557963972853" 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_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve_637855557963982854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963972853" xlink:to="us-gaap_RestructuringReserve_637855557963982854" 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_RestructuringReserveAccrualAdjustment1" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1_637855557963982854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963972853" xlink:to="us-gaap_RestructuringReserveAccrualAdjustment1_637855557963982854" 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_PaymentsForRestructuring" xlink:label="us-gaap_PaymentsForRestructuring_637855557963982854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963972853" xlink:to="us-gaap_PaymentsForRestructuring_637855557963982854" 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_RestructuringReserveTranslationAdjustment" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment_637855557963982854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963972853" xlink:to="us-gaap_RestructuringReserveTranslationAdjustment_637855557963982854" 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_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve_6378555579639828541" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963972853" xlink:to="us-gaap_RestructuringReserve_6378555579639828541" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails" xlink:type="extended" xlink:title="42003 - Disclosure - Other Charges - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557963982854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557963982854" 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_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis_637855557963982854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963982854" xlink:to="us-gaap_RestructuringPlanAxis_637855557963982854" 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_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain_637855557963982854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanAxis_637855557963982854" xlink:to="us-gaap_RestructuringPlanDomain_637855557963982854" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_Fiscal2021RestructuringPlanMember" xlink:label="dsgx_Fiscal2021RestructuringPlanMember_637855557963992853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanDomain_637855557963982854" xlink:to="dsgx_Fiscal2021RestructuringPlanMember_637855557963992853" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963992853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963982854" xlink:to="dei_LegalEntityAxis_637855557963992853" 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_637855557963992853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963992853" xlink:to="dei_EntityDomain_637855557963992853" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963992853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963982854" xlink:to="us-gaap_StatementLineItems_637855557963992853" 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_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges_637855557963992853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="us-gaap_RestructuringCharges_637855557963992853" 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_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1_637855557963992853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1_637855557963992853" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:label="statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" />
    <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_637855557963992853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:to="us-gaap_StatementTable_637855557963992853" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557963992853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963992853" xlink:to="dei_LegalEntityAxis_637855557963992853" 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_637855557963992853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557963992853" xlink:to="dei_EntityDomain_637855557963992853" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557963992853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557963992853" xlink:to="us-gaap_StatementLineItems_637855557963992853" 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_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_637855557963992853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_637855557963992853" 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_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_637855557964002851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables_637855557964002851" 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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637855557964002851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637855557964002851" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" />
    <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_637855557964002851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="us-gaap_IncreaseDecreaseInInventories_637855557964002851" 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_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_637855557964002851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_637855557964002851" 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_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_637855557964002851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities_637855557964002851" 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_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes_637855557964002851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes_637855557964002851" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_637855557964002851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_637855557964002851" 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_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_637855557964002851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_637855557964002851" 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_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_637855557964002851" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557963992853" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital_637855557964002851" order="10" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" />
  </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="dsgx-20220131.xsd#dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" xlink:label="statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" />
    <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_637855557964012852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" xlink:to="us-gaap_StatementTable_637855557964012852" 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_637855557964012852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964012852" xlink:to="srt_StatementGeographicalAxis_637855557964012852" 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_637855557964012852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis_637855557964012852" xlink:to="srt_SegmentGeographicalDomain_637855557964012852" 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_637855557964012852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637855557964012852" xlink:to="country_US_637855557964012852" 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_637855557964012852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637855557964012852" xlink:to="us-gaap_EMEAMember_637855557964012852" 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_637855557964012852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637855557964012852" xlink:to="country_CA_637855557964012852" 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_637855557964012852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637855557964012852" xlink:to="srt_AsiaPacificMember_637855557964012852" 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_637855557964012852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964012852" xlink:to="dei_LegalEntityAxis_637855557964012852" 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_637855557964012852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557964012852" xlink:to="dei_EntityDomain_637855557964012852" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557964012852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964012852" xlink:to="us-gaap_StatementLineItems_637855557964012852" 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_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637855557964012852" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557964012852" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637855557964012852" 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="dsgx-20220131.xsd#dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" xlink:label="statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" />
    <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_637855557964022854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" xlink:to="us-gaap_StatementTable_637855557964022854" 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_637855557964022854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964022854" xlink:to="srt_ProductOrServiceAxis_637855557964022854" 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_637855557964022854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis_637855557964022854" xlink:to="srt_ProductsAndServicesDomain_637855557964022854" 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_637855557964022854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637855557964022854" xlink:to="us-gaap_ServiceMember_637855557964022854" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_ProfessionalServicesAndOtherMember" xlink:label="dsgx_ProfessionalServicesAndOtherMember_637855557964022854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637855557964022854" xlink:to="dsgx_ProfessionalServicesAndOtherMember_637855557964022854" 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_637855557964022854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637855557964022854" xlink:to="us-gaap_LicenseMember_637855557964022854" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557964022854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964022854" xlink:to="dei_LegalEntityAxis_637855557964022854" 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_637855557964022854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557964022854" xlink:to="dei_EntityDomain_637855557964022854" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557964022854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964022854" xlink:to="us-gaap_StatementLineItems_637855557964022854" 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_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637855557964022854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557964022854" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637855557964022854" 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="dsgx-20220131.xsd#dsgx_statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" xlink:label="statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" />
    <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_637855557964032855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" xlink:to="us-gaap_StatementTable_637855557964032855" 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_637855557964032855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964032855" xlink:to="srt_StatementGeographicalAxis_637855557964032855" 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_637855557964032855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis_637855557964032855" xlink:to="srt_SegmentGeographicalDomain_637855557964032855" 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_637855557964032855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637855557964032855" xlink:to="country_US_637855557964032855" 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_637855557964032855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637855557964032855" xlink:to="us-gaap_EMEAMember_637855557964032855" 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_637855557964032855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637855557964032855" xlink:to="country_CA_637855557964032855" 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_637855557964032855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637855557964032855" xlink:to="srt_AsiaPacificMember_637855557964032855" 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_637855557964032855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964032855" xlink:to="dei_LegalEntityAxis_637855557964032855" 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_637855557964032855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557964032855" xlink:to="dei_EntityDomain_637855557964032855" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557964032855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964032855" xlink:to="us-gaap_StatementLineItems_637855557964032855" 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_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets_637855557964032855" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557964032855" xlink:to="us-gaap_NoncurrentAssets_637855557964032855" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </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="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557964042854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557964042854" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557964042854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964042854" xlink:to="dei_LegalEntityAxis_637855557964042854" 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_637855557964042854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557964042854" xlink:to="dei_EntityDomain_637855557964042854" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557964042854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964042854" xlink:to="us-gaap_StatementLineItems_637855557964042854" 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_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments_637855557964042854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557964042854" xlink:to="us-gaap_NumberOfReportableSegments_637855557964042854" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSubsequentEventDetails" xlink:type="extended" xlink:title="42301 - Disclosure - Subsequent Event (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="NoteToFinancialStatementDetailsTextual" />
    <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_637855557964042854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable_637855557964042854" 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_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis_637855557964042854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964042854" xlink:to="us-gaap_SubsequentEventTypeAxis_637855557964042854" 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_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain_637855557964042854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis_637855557964042854" xlink:to="us-gaap_SubsequentEventTypeDomain_637855557964042854" 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_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember_637855557964042854" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeDomain_637855557964042854" xlink:to="us-gaap_SubsequentEventMember_637855557964042854" 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_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637855557964052853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964042854" xlink:to="us-gaap_BusinessAcquisitionAxis_637855557964052853" 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_637855557964052853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637855557964052853" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637855557964052853" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_VitaDexSolutionsLLCMember" xlink:label="dsgx_VitaDexSolutionsLLCMember_637855557964052853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557964052853" xlink:to="dsgx_VitaDexSolutionsLLCMember_637855557964052853" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220131.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember_637855557964052853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637855557964052853" xlink:to="dsgx_NetChbLlcMember_637855557964052853" 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_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637855557964052853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964042854" xlink:to="dei_LegalEntityAxis_637855557964052853" 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_637855557964052853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637855557964052853" xlink:to="dei_EntityDomain_637855557964052853" 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_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637855557964052853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637855557964042854" xlink:to="us-gaap_StatementLineItems_637855557964052853" 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_637855557964052853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557964052853" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637855557964052853" 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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637855557964052853" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637855557964052853" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637855557964052853" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>14
<FILENAME>dsgx-20220131xex99d1001.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20220131xex99d1001.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>15
<FILENAME>dsgx-20220131xex99d1002.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20220131xex99d1002.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" "! G\# 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@
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
M2#LRP@^7']&W_A7RGKG[??[0FOW37%S\5O$$#,<[;&9;5![!8E45]&_L5_\
M!*N_^,6AZ?XW^)UW>>'O"UVBSV.CV@"7M]&>1([,#Y,;#IP68'/RC!/Z,^%/
MV!?V?O"%C':VGPKT"["*!YNJ0&]E;W+3%CF@#\:?"?\ P44_:(\(7<<]O\3-
M4U%%/,.K)%>(_L?,4G\B*^S?V=/^"S":CJ%IH_Q@\/0V*2$)_P )!H".40^L
MMN2QQZE"?]VOK3QW_P $Y?V>_'FGRV\WPYT[19F'R7>@E[&6,^HV':?HRD5\
MR> _^".UAX*_:%TC6KOQ'%XC^&EFQO#I]Y'LO7E4@QP28&QT)Y+#!(!&T9S0
M!^DFC:Q9^(-)LM3T^=;JPO(4N+>=,XDC=0RL,\X((-7:9%$L,:HBA$4 !5&
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
M>%__ .DSU^[HZ5^$7_!)<@?ME^',\?Z!?_\ I,]?NX'7'WA^= #J1F"J23@
M<DTA8 9SQZU\'_\ !0;_ (*$^'O@_P"$-4\$>!=7@U;X@7T;6TLME()(]*0C
M#.[#CS<=$ZCJ<=P#\Z/^"C_Q>M_C#^U5XGNK"?[1IFD;-'MW4Y5O*SO(_P"!
MLP_"OOC_ ((Q_#B;0/@MXH\67$+1_P!N:DL,#-QNCA4@D>Q+?I7Y1?![X5>(
M?CQ\3='\):#!)>ZKJMP%9SDA%SEY7/8 9))K^CKX-_"_2_@Q\,?#O@O1T"V.
MD6B6ZN!@R-U=S[LQ)_&@#M**** /C[_@JW_R9QXC_P"OVT_]&5^3_P#P3_T;
M3_$'[6WP_L-4L;;4K&:]*RVMY"LL3C:>&5@0?QK]8/\ @JW_ ,F<>(_^OVT_
M]&5^5?\ P3I./VQOASG_ )_C_P"@&@#]W/\ A1/PU_Z)[X5_\$EM_P#$4?\
M"B?AK_T3WPK_ ."2V_\ B*[?>O\ >'YT;U_O#\Z *>C:'IWAS3HM/TG3[73+
M"$8CM;.%88D'LJ@ ?@*O4@8'N/SI: "BBB@ HKSGX]?'OPE^SCX N/%_C&ZE
M@TV.5($AMD#SSR,<!8T)&XXR>O0&K_PG^-/@OXX>%H?$/@G7[37M-D W&W?]
MY"W]R1#\R-[,!0!SOQW_ &6/AI^TAI/V/QQX:M]0N44K!JD'[F]M_P#<F7G'
M^R<K[5^.?[</_!/'7OV5/+\1Z-?R^)O -S,(5OI(PMQ92'[L<X'!!QPXP"1@
M@'&?WDW#U%?*/_!3KQQH'A7]D#QC9:Q/"+O6A#8Z=;.PWS3><CY4=]JJ6)[<
M>HH _,S_ ()B?M):K\&?VA-'\,S7DC>$_%MPNG7=F[_NTN&X@F4=FW80GN&Y
MZ"OWA!R!7\TO[,V@W?B?]HGX;:=8*S7,OB*Q9=O4!9U=F_!5)_"OZ6(AMC49
MSQ0 ^BBB@#\I?^"W?@.87?PS\:1H3;F.ZT>X?'"ME9HA^(,OY5X9_P $C?BG
M;> /VIXM%OIEAM?%6G2Z6C/P/M *RQ#/J3&5'NPK]8?VQ?V?(?VF/@'XB\&
MQQZJZ"\TJ>3@17D>3&2>P;)0G^ZYK^>&:'7_ (8^-&CECNM!\2:'>\JP,<]I
M<Q/^C*R_I0!_4517Q[^Q#_P4'\)_M)>&K#0_$5_:Z!\2H(UBN=/N'$4>H,!C
MSK8GAMW4Q_>4YP".:^P=P]<?6@!:*3</451GU[3;;5;;3)K^UBU*Y5G@LWF5
M9I5498JA.Y@!U('% %^BBB@ KR?]IC]HOPW^S+\+]1\7>()0[H#'8V"L!)>7
M!'RQJ/YGL,FNU^(7C_0OA?X.U7Q/XDOXM-T;386GN+B4X  '0>I/0#N:_GW_
M &R/VL-=_:L^*%QK-VTMIX<LBT.CZ46^6"'/WV'0R-P2?H.U 'GOQM^,WB/X
M]?$;5O&7BBZ-SJ5])E8P3Y=O&/N11CLJCC\SWKA*** "E7[PI*5?O"@#^D3]
MCS_DV#X:_P#8%@_D:]CKQS]CS_DV#X:_]@6#^1KV.@ I&Z4M(W2@#^:W]JG_
M )./^(W_ &&[G_T,U^EG[)?_  3H^!_QB_9H\'>*/$'AV]D\0:MIWF3WT.J7
M"8D.1O"!MHQUQC'%?FG^U3_R<?\ $;_L.7/_ *&:_<?_ ()Z?\F>_#3_ +!B
M_P S0!^&_P"TI\!=;_9M^+VL^#=81F^RR>99W>WY+JW;F.1?J.OH017[%?\
M!,O]I[2/CE\&(/#TD%CIGBSPTBV]]9VD20K/'T2X5% 'S8PV!PP/M5K_ (*1
M?LD1_M'_  CEU?1;56\<>'(WN+$H/GNH1S);GUSRR^XQ_%7XU?L[_'/Q!^S-
M\8-)\7:3YBRV4ODWUB3M%U;DXEA8?AQZ, : /Z5:*Y/X5_$O0_B_X T7Q?X<
MNEO-(U6W6>%QU7/56'9E.01V(KK* "BBB@ JCKG_ "!K[_KA)_Z":O51US_D
M#7W_ %PD_P#030!_+4W_ !\-]37]._PE_P"26>#O^P-9?^B$K^8AO^/AOJ:_
MIW^$O_)+/!W_ &!K+_T0E '64444 %%%% #7^Z:_G%_;4_Y.K^)W_8:F_I7]
M'3_=-?SB_MJ?\G5_$[_L-3?TH _7#_@G5\)? _B3]D+P'J&K>#/#^J7\L4YD
MNKS2H)I7Q,X&YV0D\>IKZ3_X43\-?^B>^%?_  26W_Q%>+?\$T6 _8Q^'V2/
M]5/W_P"F[U]0;U_O#\Z .:\/_"_P;X3U 7VA^$M"T:^"E!<Z?IL,$FT]1N10
M<&NGIN]?[P_.E!STH 6BBB@ HI"<"O!KK]N#X0Z;\;;WX6:AXGBTWQ);;4,U
MWA+-Y3_RQ$V<"0=PV/8F@#W.\LH-0MI;>ZACN+>52DD4J!D=3U!!X(]C7PO^
MT]_P2>^'7Q6@OM9\ !? /BE@TBP6ZYTVY?T:+_EGGU3 ']TU]V1RI*BNC!D8
M95@<@CU%.+#UH _F#^(/@'Q)\&/'VH^&O$%K+I/B#2+C9(JL04=3E71AU!X(
M85^YW_!-K]HO4/VA/V>;2;7;G[7XCT&8Z9?7#'+3;0#'(WN5(R?7-?F/_P %
M4O&^@^-?VL=9;0KB&\&GVL%C=7$!!5IT7#KD==O3\*^P?^"*'A^\M?A9XZU:
M5&2SN]62.$GHY2)=Q'XG'X4 ?I-1110 4444 %%%% !7P-_P6;Q_PS#H7('_
M !4MMU/_ $PGK[YK'\3^#M!\;6"6/B+1--UZR202K;:G:1W,:N 0&"N",X)Y
M]S0!_,IX ^(OB?X6>(X=?\):W=^']:A1XX[ZQEV2JK JP!]P2*]3_P"&ZOV@
M/^BM>)__  ._^M7[W_\ #//PL_Z)IX/_ /!#:_\ QNC_ (9Y^%G_ $33P?\
M^"&U_P#C= '\]?BS]J/XP>.[-K37?B9XIU.T<8:VFU>;RV'H5# &M?X(_L??
M%G]H/588?"WA*_:PD8>9K%_$UO91 ]6,K@!OHN2?2OZ#-)^#'@#09Q/IG@?P
MWITR\B2TTBWB8?BJ UV"1K&H55"J!@ #@4 ?-'[%_P"P]X8_9)\-2R)*FN>-
M+^,+J&M-'@ =?*A!Y6,'\6ZGT'TS110 4444 ?'O_!5L_P#&''B+D#_3;3K_
M -=*_#3P=XRUWX?>([/7_#FJ7&C:S9MOM[VTDV2Q'IE3VK^GKQ#X9T?Q=ICZ
M;KFE6.M:>Y#/::C;)/$Q'0E'!!Q]*Y'_ (9Y^%G_ $37P?\ ^"&U_P#C= 'X
M(?\ #=7[0'_16O$__@=_]:C_ (;J_: _Z*UXG_\  [_ZU?O?_P ,\_"S_HFG
M@_\ \$-K_P#&Z/\ AGGX6?\ 1-/!_P#X(;7_ .-T ?C7^R7^V'\:_&?[2/P^
MT37/B9XAU/2;[5$BN;2XO-T<J%3\K#'(K]U%^Z*XK2O@?\.="U&"_P!-\ ^%
M]/OK=M\-U:Z+;12QMZJRH"#[BNVH **** /SJ_X*G?LK?&#XYMI/B'P?<)XC
M\.:+;M_Q2]L-EU'(?OS("<3$@ 8&&   !K\E] \4>,_@YXIDGTC4]9\'^(+5
MO+D-K-+9W"$?PN!@_@17]/G6N#^(WP&^'?Q<3'C+P5H?B-P,":_L4>51[28W
M#\#0!^%EE_P4B_:0L++[+'\3;^1 -H>>SM99!_P-HB3]37COC[XG^//CIXF@
MO/%>OZOXOUF0B* 7<K3N,GA(HQPH)_A4"OW6F_X)J?LVS77GGX8V:MG)1-0O
M%3_OD38KU#X9_LT_"WX.RB;P;X#T+0;H<?:[:T4W&/3S6R_ZT ?#?_!,/]@/
M7/AIK$?Q7^(^G-IFM>2T>B:+<+B:U5QAIYA_"Y4[53J 6)Y.!^E_2CI2T %%
M%% "'D5\3_MW?\$Y=(_::$WB_P )36WA_P"(T405Y)AMM=451A5FP,JX' D
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
M;V1)]3Y+(*R]!_X)U_LZ>';E+BU^%VE32J<C[=-<72_]\RR,I_*@#\0/V?\
M]FCQ]^TUXRATCPEI-Q=1-*/MNKS*1:V:D_,\DG3/?:#N-?T"_L\_ _1OV=_A
M-H?@C1/WD&GQ?OKEEPUQ,W,DC>Y;)KMO#WAC2/"6EQ:;H>EV6CZ=",1VEA;I
M!$GT10 *TZ "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@#@OC!X>\
M6^,O#3^'_"FKQ^&7U',-WKNWS)K. _>,$?0RD9"ECA>ISC!YOX#?LG_#7]G2
MP*^$M C&K2@FZUV_/VC4+EC]YGF89&3SA<#VKV&B@!,8I:** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
F**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH _]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>16
<FILENAME>dsgx-20220131xex99d1003.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20220131xex99d1003.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" %: I4# 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 **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@#(\7:G/HWA?5K^VVBXMK:26/>,C<%)&17EFE>/O&'AA_!-YXBU#3M
M=TGQ.88"MM8FUGM)I$#*1^\82+V/ />O7-;TF+7='O=.F=XXKJ%H7>,C< PP
M2,@C-<#X1^!EEX=U#2KO4O$>N>*FTE FG0ZQ)#Y5IA=H9$BB0%L<9;)% &+X
MC^(VKQ_&2Z\+Q>(%T>TB@M9(85T":^,S2;MVZ5#MC'RC[V*U_C=XP\2>#[/1
MIM)?[#IDMP4U/5UTYKXV<>WAO)5@=I/5N<"K^O?":75/&MQXDT_QAKOA^>YB
MABN+73_LQAF$>=N?,A=NYS@BM;QOX)O/%UI;16?BG6?#<L.0TVEM#^]!&"'6
M2-P?P Q0!AZ[\0Y_"7PA7Q)]OLO$UVT2B"\M(_)M[EW;:C;0S;5Y&>3T-:_@
MO2O&-I*MQXB\26.K12PAC:VNF?9_*D//ROYC$J.G(R?:GV7PRT.U^'Z^#9(9
M+O1_),+B=\R/DEBY88^;<2<C'-9GAOX;ZUX2BNUMO'&M:P'A\BU@UKR98K4=
MF&R-'=AVW-]::5W83=E<Q/BG\;[;PCXGT;PQITB3:O>W$:SDC(@C)[_[1K.^
M//Q8U+X>^(O#]E;ZY9^'[&\M[B::[NM/>\RZ#Y$"JP(W'C-9UE^R)I*>)H/$
M5[XHUG4-82Y%U)+)Y021P<\KMR!^->G>*_AEI'C/7K#5-3\V4VEM/:BV^7RI
M$E&&W @G([8(KTL8L+&%.&&=VE[SM:[_ ,CS<']:E.I/$JR;7*KWLO\ /N5-
M!O\ Q5XN^&6EW[S0^&?$-Q"LTWF6GGHO7CRRXQN&#R>,U4^"^H^)_$7A>VUO
MQ!K5KJ*WB/LMK;3_ +/Y161ESNWMNR%Z8%=9X7\.#PQX=M=(%_=ZC%;H8DGO
M&5I=G8$@#.!P.,\4>$?#%MX-\.VFCVDDLUO;;@CSD%SN<L<X '5CVKS#TSR_
MX<?$C5_%_CW5=/NM?5%L[^X@72DT"8(8DQ@_;,^7GGIU]JE^*7CKQ-X=\=V%
M@NK6WA/PW/ #%K-UI;7L,MP6QY4K!U$(QT)QGUKHO#?PDE\+>);K4[+Q?KOV
M"YNY+R317^S&U+O][_ECYF/^!T[X@?"4_$&Z87'BK7-/TJ=!%=Z19R0_9KE
M<X.^-F7/0E6% '9Z9'<);*;F[2\=@&$D<81>G;!/%7*AL[2*PM(+6!/+@@18
MXTSG:H& /R%34 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 444A. 30 M%><? CXB:E\3/"&HZIJD=O%<6^M:AIZ"V4JIC@N&C0D$GG"C/
MOZ5Z/5SBX2<7T)C)3BI+J%%>$WWQ7\<_$SQUK7A[X7VVCVFD:#/]CU3Q-KJ2
M2Q&YQEH;>%"I<KQN8L!DX^N?X@^*/Q,^!6HZ???$5="\2>!;FX2UN==T.VEM
M;C3G<X1Y8&=PT>X@$J<C/Y[*A)Z75^W7^O+<Q=>*UL[=^A]#44U'61%=6#(P
MR&!R"/6O#M5^+WC3XA^-M6\,_"O3M)-IH<PMM6\3Z\9&M8I\9,$,2$-*ZC[Q
MR #P>M90@YWMT-)S4+7ZGN=%>0:0WQM\/>)M,CU<^%/%_AZXF6*\GTZ*73KN
MT0G!D".\BR!>I ()QQS7K<\AB@D<=54D9^E*4.7JF.,N;I8DHKSOX!?$'4?B
MA\,-/\1:K';Q7MQ<7<3):J50".XDC7 ))^Z@SSUS7-^//B3XSUGXKK\._A^N
MD65]:Z<NIZIK&M1/-';Q.Y2-(XD92[D@DY( &*M4I<[AVW(=6/*I]]CVBBO/
M_AN/B7::GJ%EXZ;P_J-BB*UEJNBI) \C9Y62!RVTXYR&(H^(-A\3KK5(&\%:
MOX9L-.$6)8]:L9YI3)GJ&CD48QCC%3R>]RW17/[O-9GH%%?,OPU\9?'CXDQ>
M(I+;6/ MF-&UB?1Y!+IETWF/$$)<8FX!WCCVKZ(L6U&T\/Q-J<EO/JD5OFXD
MMD*0M(%^8JI)(7/8FJJ4G3=FU<FG451729I45YW\ ?B!J/Q0^%VF^(M6CMXK
MZYFN8W2U4K&!'.\:X!)/11WZU1^,GQ>O_ ]_HGAGPOI,?B#QOKSLMA8S2&."
M)%YDGF89(C4'MR>GO2]E+G=/J/VD>15.C/4J*\.F_P"&A-!C@OV?P/XJ7(-Q
MH]I#<64@7N(IW=E8_P"\JUZIXH\5P>#_  9J/B+4HGB@L+-KN>%2&90J[BO'
M!/:B5-JR33OV"-2][IJW<W:*^>O#.O?'KQ[X4M/%^EW/@O3+:_C%U9>'[RUN
M)':%N4$ERK@*Y&.B$#->\:+-?7&CV,NIV\5IJ3P(US!#)O2.4J-RJW&0#D T
M3I\F[3"%3GV3+M%%><>/K'XK3:T9?!VL^%;+1Q$/W6L6%Q-/YG.X[DD48Z8X
M]:B,>9VO8N4N57M<]'HKY@^$OCKX[?%G0]0U.TU;P-81V>I7&FM'-IETQ9HG
MVEAB;H:^B9KJ^TOPN]S>-!/J5O:&25H4*Q-(J9)4$DA<CIGI6E2DZ;Y6U<SI
MU547,D[&M17S5\+?%_QU^+'@FQ\46&K^!M/L[UI/+MKC3+IY$"N5Y(FP>E>]
M^$(=?@\/VR>)[FPN]: /GRZ9"\4!YXVJ[,1QZFBI2]GHVKA3J>TU2=C:HKQ_
MXH_%_7[+QI9> ?A]I-GK/C"Y@^UW,^HR,EGIEOG DFV L2QX51C-5K:7X\>&
M]5L);^/PAXRTJ615NX--CFTZY@4GED,CNC@>AP335%V3;2N#JJ]DF['M-%8?
MCG6Y_#?@W6M5M51KFRLY9XUD&5+*I(SCMQ6?\*/%5WXX^&WAO7[](H[S4;*.
MXE6 $(&89. 22!^-9\KY>;H:<RYN7J=917FND?$;4[_X_P"O^"9([<:38:);
MZC%(J'SC(\A4@G.,8]JG^/\ X^U3X8_";7O$FBPVT^IV40:".[4F(L6 &X @
MXY]:KV<N91ZNWXD>TCRN717_  /0Z*\N_9Z^,$OQ?\%-<ZG:)IGB73I?LFJV
M"9"Q38R"N3G:RD$9I_@CXEZIXD^,GCKPI<Q6R:=H<=LUL\:$2,9 2VXDX/X
M4W2E%R3Z JL6HM=3TZBN.^*_Q-TWX2>#+O7]11[C85AMK.'_ %EU.QQ'$ONQ
MXKSO3H_VA/$>F#5FO_!7A>65?,AT.>QN+ME4\A)9Q*N&]=JFB-)R7,W9>82J
M*+Y4KOR/=:*\G^"_QAU+QKJFM^%/%NE0Z%XXT(K]LM;60R6\\3?<FA8\E3Z'
MD5:_:#^)6J?"SP59:MI$5M+<S:I:63"Z0LNR23:Q !'..E'LI<_L^HO:QY/:
M=#TZBF1,7B1CU*@U@?$'QUIGPU\':IXDU=F%C81&5UC&7<]E4=R3@"LDG)V1
MJVDKLZ*BO!=!O_CSX_TI-=MKCPEX*L[I1-9:5?V,]]<&,\KYTBR($)&,A0<5
ML_"'XPZ]K?B_5_ ?CS2;31O&>F1+<J^GR,UIJ%NW EAW?,,=UYQ6[HM)M-.V
M_P#7^1BJR;2::OM_7^9[#16!X[\;Z7\.?"6I>(M:F,.G6$1ED*#+-Z*H[L3P
M!7D^@ZS\<OB/9+K=B/"W@32+E1+96&J6<U_>/&>5,VV2-4)&#@9Q41IN2YKV
M7F5*HHOEM=GN]%<%\,=1^(DS:A9>/M(T>WEMR/LVJ:'<LT%VIZ_NG^>,CWR/
M>L?XF?%#5OAG\1/""7L5J_@K6Y&T^:X"-Y]K=GF(ELXV-TZ9S0J;<N5:@ZB4
M>9GJM%>7_&WXG:GX*7P[HOAF&VO/%GB"^2ULK>Y4M&D8YEE8 CA5]QS7IL(D
M$,8E*M*%&\J, G'.*EP:BI/J4I)R<5T'T45X/XE\>?$WQ!\;/$'@OP7=>&M.
ML]'TZUO7FUJTGF>4RYX!CD7&,>E.$'.]GL*<U"U^I[Q17BWP[^*_C"U^)K_#
MSXC:9I5OK4UFVH:;JFAO(;6\A5MK@I)\R,IQQFNE^/GQ!U'X8?#2^\0:5';R
MWL,\$:K=*63#RJIR 0>A/>J=*2FH=]B55BXN?8]$HJO83M=6-M,X :2-7('3
M) -6*Q-@HKYX\;_M(:MX8^.EGH,%E9R^!;>Y@TO5M38,98;V=2T:J0<8'R@Y
M'!-?0P.1D<BM9TY4TG+J9PJ1FVH]!:*\:^(\GQFT-?$&L:)K7@U=#LH9KJ"V
MO=-N7N/+12VUF64*6P,9  KFOA)XE^.7Q+\(^'_%#:QX(M=-U%$G>V_LRZ,J
MQD_, ?.QG&:M4;QY^96,W6M+EY7<^BJ*XSXP>,+WX??"SQ+XCL8X9K_3+%[B
M))U)C9P.X!!Q^->;>%IOC[XH\.Z9J\>O^ H(KZW2X6-]*NRRA@#@_OO>IC2<
MH\UTD5*HHRY;-L]\HJ*V$JV\0N&1IPH\QHQA2V.< ]J\)C^*WC[XN^*M7L/A
ME!HNE^&M(N&LKGQ)KL4D_P!HN%^^MO C+N53QN9@#4PIN=[;(J=10M?=GO=%
M?/FH_%/XD?!?Q'H\?Q)BT/7?!^J726"^(M#AEMGLIW.$\^%V<;&/&X-@=Z^@
ME8.H92"I&01WISIN%GNF$*BG==4+17S=X5\>?&GXFW_BZX\-7O@NQT[2-:NM
M+@MM3LKDRR")L LZ28&?4+^%=_\  SXM:E\1H/$&D^)-*AT7Q;X<O38:E:VL
MID@8X!66)CSL8'(SSUJYT903=UIN1"M&;2L]=CU*BO&_VI/BOXD^$7@/2]1\
M*6=E?:UJ&KVVF0PWZ,T9,I('"L#G('>NM^#'Q*A^+?PVT7Q/'$MM-=PXN;93
MGR9U.V1/P8$5#I25-5.FQ2JQ=1T^IV]%>0_M+?&'5?A)X-M6\-V5MJ7BG4YF
MBL+6ZR8]L:&2:5@I!*HBG//<5TWP1\;7WQ'^$WA;Q-J<4$.H:G817,Z6P(C#
MLN3M!)('XT.E)4U4Z JD7-TUN=Q11161J%%%% !1110 4444 %%%% !1110
M4C?=/TI:1AD&@#Q#]D/_ ))KKG_8TZQ_Z625[;,2(9".NTX_*OF;X67?Q6^#
M^E:WH*_!^]\002:YJ%]!J%MX@T^%)8IKAW0A'EW#@CJ ?:OH#P;K&K:_X>M[
MS7/#\OAC49"PDTR>ZBN6B ) S)$2AR.>#WKJQ$??<[JS?='+0E[B@T[I=F>/
M_L2A'^"37+?\?]SK>IRWI_B,WVEP<^^T+6Y^UW%;2_LV^/A<[=@TUV3=_P ]
M!@I^.[;7)Z=X3^('[/7C#Q)-X1\-+X]\!Z]>OJATRWO8[:_TVYDQYNSS2$DC
M8C.,@C(]#E/%6@?$3]I)[#0M?\*-\/?A^MQ'<:G'?7T4^H:DJ,&6%%A++$A8
M#<2V3V]^AI.M[;F7+>^_X6W,4VJ/L;/FM;;\;['LO@9[@_#'P^\^?M?]CVY?
M/7?Y*Y_6O*?V)L-^S;H][&B2:S>7-]<ZAO.&>[-S(&WGL<!!] *][CA2&%8D
M0)&JA54#  ' %?/-OX"^('P!\8Z]J'@+1K?QMX(UR[;4;CPZUXEI>6-T_P#K
M'@>3Y&1NI5B#Z5A!J<90O9MI_GI^)M-.$HSM=)-?EK^!<U7XV?$SP9XC\)VO
MBSP#HMAI6O:U;Z,MW8ZZUQ)&\K$!MAA7( !/6O=[S_CTG_W&_E7SQXC@^(WQ
MQ\3>!A<_#V3P1H?A_7[76[F]UG5()9IA"3^ZCAA+\G/WF('%?1%RADMY5499
MD( _"IK**4;))];._P"K'2<GS7;:Z7T_1'C/['7_ "0/1O\ K]U'_P!+9JM?
M%?X,:YK/C&R\>^ /$$7AOQK:6WV.47D1ELM2M]VX0SJ#D -R&'(S],:/[-?@
MS6/ /PBTS1=>L_L.IPW5[(\'F))A7NI70[D)'*LIZ]ZK^,O'7Q-\&^*[O['\
M/8_&GA60(;6?1]1B@O8#CYA+',RJX)Z%#QW%:.3=>;IM;OM9_?H0DE1BII[+
MO=?=J5_A-\<-4\2^+KWP-XW\.'PIXXLK<77D0S>=:7T&=IF@DZXS_"W(S]<>
MP5X7\/\ P=XQ\:?&7_A97C#1(O"5O9::^FZ7HANDN;G#L"\LSQ_(,@ !03BO
M=*QK**E[OSMM<UHN3C[WROO8\/\ V5_^/+XF_P#8[ZC_ .@0U[/J7_(.NO\
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
M0!SQ6]2I"K"5M'>^OW67X?<8TX3I3C?:UM/ON_Q._P#B9_R3?Q7_ -@F[_\
M1+UQ/[)XQ^SSX(_[!Z5Z!XXTZXUCP5X@L+2/S;NZT^X@ACR!N=HV51D\#)(Z
MURW[/?A75/!'P;\*Z'K5K]BU2RLUBG@\Q7V,.HW*2#^!K!->Q:ZW7Y,W:?MD
M_)_FBG^T]_R;[X\_[!<O]*XGX7>)?C.G@3PS';>!O"LNGBR@6.>3Q#*KF/:,
M,5^S'!QVS7I7QW\-:EXQ^#OB[1-'MOMFIWVGR0V\ =4WN>@RQ 'XD5M?#O2K
MK0O GA_3KZ+R;RUL8H9H]P;:X4 C()!Y]*N,XQHV:3U_0B4'*M=-K3]31UB:
MZB\/WLL2 7JVKLB(=P\P(2 /7FO(?V,8K:/]GKPX]O@M*]Q+.1U,S3,9,^^[
M->W$9&#7S?X;\,_$3]F[5M9T_P -^%O^%@^ +^\DOK.VLKV*VO\ 37D8L\>V
M4A9$W$X((-*G:5.4+V>C_/\ S'4O&I&=M-5^1T?[:,<+_LV^+_.QE8X6CS_?
M\Y,8KU?P@96\*:.9\^<;2+?GKG8*\-USPW\0OVB=7T:S\3^&!X!\ 6%W'?75
MA>7L5S?:I)&<QHPB)6.,'D@L2<?E]#HBQHJ* JJ, #L**GNTXT[ZW;_+_(*=
MY5)3MI9+\SXY^%VN?%S0['XI7/@'PYX:UVSB\4ZBZQZC?31W;2;^0L80(P],
MR FO5?V2K/3M2\#ZAXO34YM7\0^)+V2ZUBXN+<0/%<+\A@\L$[5CV[0,GUSS
M6W^S[X(UKP3:^-5UJR^Q-J/B2]O[8>:C^9!(^4?Y2<9'8X/M57X:^!/$'P]^
M-'CQ8+$#P+KS1ZO;SK*F(;UAMG39G<-V W3;[Y-;U:D9J<59;?/R_4YZ5.4'
M"3N]_EYF'^V%_P @#X<_]CQI'_HZF?"\M\*?VA/&7@23$&B>(E_X2314Z('8
M[;J)>PP^&VCL2:Z+]I+P'KOCW2/!4&A6/VZ73_%6G:E<KYJ1^7;Q2;I'^=AG
M [#)/8&L[]J7X:^*O%FA:'XD^'R1MX]\-W9GTY9&11+'(ICE0ER%Z$-R<?*?
M6E3E%PC3;WO\MK#G&2G*HEM;Y]SD=2*_%CQE\4O&F\RZ)X6T:\\.Z2#]UY_*
M9KN4?\"VH".H4UZ-^RG_ ,FZ^ /^P3!_Z#4_AKX62>"O@#/X.L8A<:FVDSQ2
M$, ;B[DC8NQ8G&6D8G)/>K_[/OA;5/!/P6\'Z%K5K]BU6PTZ*"YMRZOY;A>1
MN4D'\":FI.,J;BGLU;TLRZ<)1J*36Z=_6Z/0J***X3M"BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *Y7P_\
M2-'\27FN6MH9UN-'<I<1RQ[2P&?F3GYER",UU5?/?V"?1M)USQ?80R37&G:Q
M?0WD,0R9K1RN\8[E3AA]#7L9?A*6*C.,W:6BCZOOZ[>5[GS^:8ZM@I4Y4U>/
MO.7>R2U7I>_FE8]<NOB'IEIX&3Q4T5T^G/$LJQI&#,0QP!MSC.?>K&B^+)-8
M@NY7T#6-.,"[A'>PHC2^R8<Y/UQ7E^K,#^S#9.9#"OV.%O,X&T>8.>?ZUZ/X
M&U:POXKF*T\7+XKD0AF?S+=FB'I^Y51@^]=&(P=.C0G.,;VG*/71+EMLK=>K
M]#FPN/K8C$4Z<Y6YJ<)?9U<E*^[OT5K)^9EV7Q<BOM8DTM/"OB-;R)4>5'M8
MAY:N2%9OWO3@_E71VGBVQN]>U72 )8[O3HDFE\Q0%9&SAE.>0-I!Z5@Z&/\
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
M:*/*M?L]C@V^&TMU\--/\-RWRP7MDL;17D*EE65&RIP<9%0'PAXJ\47^F_\
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
MP9\ _ _B[PKIFLR>$HM'DO(1*UAJ&E0QSP'NKJ4X(/\ 2O0DZ/LHVO;KMO\
MUL>?%5O:RO:_3?;^MR]XR_:S^&&A^$]7U"P\;Z)J5];6LDL%I;7B-),X4E54
M9Y)..*^.I/"OQ4O/A]X3M=2T[1?#R^._$,%Q<ZC?%[K4;Z9G,L3R*/E6!0%Q
M&23QV!KZW\:?LE>#==\):QI]IIME:W=S:R1Q3PV,*NCE3@@A00<U\G3?$#XJ
M#P%X*OM9AT3Q%!X&\0V]K<6WFFRU"VF1O*CBG!!0(P*XEQSWSS75A>2S]GO?
MK^%OF<N*Y[KVNUNGXWZ['NWQE^$'QJUCX7>(H=:^*&BZKIZVCS2V2^'4B+;!
MN&UP^5.1P<<5Y=#XJ^(W@/4?A=\6?$FEZ+'HD\-M9ZEXCT29X_-LI0%6.]B?
MJZD@AP< ^E>N?&;XW_%32_A;XDEU7X+-HUF]G)#+?2^*K.58MPV@A$!9SD\*
M ":\B.D?$SQZ?A=\']>?0[+0S%;7=]I&D[KBY6SA"N);MV&V/) P@ZGCG%72
MYN3W^6VNUMK:[$5>7G]SFOIO?>^FY]:?\-/?"7_HHGAW_P #T_QK@OC'\5_A
ME\1?#<4>D?%_2?#VOZ?,+S3;ZWU0!$G7[HE0-B1#T(;/6NP_X9@\"_\ 0%T[
M_P %\'_Q-<%\8_@MHO@[P] GA3P%;^(O$.HSK9V<:Z9#]G@=O^6D[[?D0=<]
M^G>O.INESKEO?Y'H5%5Y'S6M\SJ/V:_VE]+^-MA=Z3<W%G%XPTG]W?6]I,)8
M;@#CSX6'#(W7'49P:]QKQW]GO]GG1O@3H4T[BWN_%&I?O=2U-8EC#,>?+C ^
M[&O0 =<9/MZL^J6R?>GB7ZN*RK<CJ/V6QM1]HJ:]KN7**SSK=H/^7F$_[K9_
ME3#KUL.C.W^Y"Y_D*QL;7-.BLO\ MM6^[!=-]+=O\*>-2E?[MI='ZH%_F: -
M&BL_[5='_ERG'_ T_P#BJ#/>'I:/_P "D4?UHL!H45F^9?\ :U7\9O\ ZU.B
M:^,J[[>-4SR1,21^&V@#Y'\">._#?@[]I_XI_P!O:_IFB[]9B9?[0NXX-P\E
M>1N(KZ+_ .%^_#+_ **'X6_\'%O_ /%U\U^%_ASH'C_]I'XLV^LZ58W[_P!L
M1(DMU;),4'DKTW"O5M3_ &:?AAHI0:A:^'; O]P7-C;Q[OIDC-=]54Y32L[V
M6WHC@IRJ1@W=)7>_JSOO^%^_#+_HH?A;_P '%O\ _%T?\+]^&7_10_"W_@XM
M_P#XNN%T[]F#X:ZQ"9K"PT"]B!VF2WT^"10?3(JW_P ,E> _^@)I'_@KBK!J
MBG9W_ W3K25U;\3K_P#A?OPR_P"BA^%O_!Q;_P#Q='_"_?AE_P!%#\+?^#BW
M_P#BZY#_ (9*\!_] 32/_!7%1_PR5X#_ .@)I'_@KBI?N?/\!_O_ "_$Z_\
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
M>.?\-J_#K_GCXE_\)^Z_^(H_X;5^'7_/'Q+_ .$_=?\ Q%>]45CS4?Y7]_\
MP#HY:W\R^[_@G@O_  VK\.O^>/B7_P )^Z_^(H_X;5^'7_/'Q+_X3]U_\17O
M5%'-1_E?W_\  #EK?S+[O^"87@GQGIWC_P -VFN:4+E;&Y!,8N[=H).#CE&
M(_&MVBBL':^ANKVU/ /V86":I\52>!_PD\O_ *"*]U#@]#FO"/V94234OBJL
MB*Z_\)/+PPS_  BO:WLU4?N97B;L"=R_D>?R-==;^(_E^2.:A_#7S_,N[J-U
M9PO9+>58[A0-W"N#E6^GO[5<63<,BL+&Y+NI5^8XJ+=3)9C"H8=C2 BEO'N+
MB6WMV\I(N))<9;/H/\:=%%%"^]5S)T\QCEC^)JE-#(ER]W98D\S_ %MLQQN]
MP?6B/58&8)(QMIO^>4XVG_ T12ZC-+S?>OGSQQI'CKPY\?;GQ;H7@6Z\6:5<
M:?;P;[;4+>W*NA;(Q(X/?TKWPL1UR*>MTZ# .!]*VB^6^E[F4X\]M;6/*O\
MA<7Q+_Z(=K'_ (/;#_XNC_A<7Q+_ .B':Q_X/;#_ .+KU;[9)_>_2C[9)_>_
M2GI_(OQ_S)Y9?SO\/\CRG_A<7Q+_ .B':Q_X/;#_ .+H_P"%Q?$O_HAVL?\
M@]L/_BZ]6^V2?WOTH^V2?WOTHT_D7X_YARR_G?X?Y'E/_"XOB7_T0[6/_![8
M?_%T?\+B^)?_ $0[6/\ P>V'_P 77JWVR3^]^E'VR3^]^E&G\B_'_,.67\[_
M  _R/*?^%Q?$O_HAVL?^#VP_^+H_X7%\2_\ HAVL?^#VP_\ BZ]6^V2?WOTH
M^V2?WOTHT_D7X_YARR_G?X?Y'@\S_$#XD_&'X?:KJ7PVO?"NE:%-<RW%W=:G
M:S@B2+: %C<GJ/3O7OKR8<_6HOMDG][]*CWLY)Y)Z]*4FY6TLD5"/)?6[8LT
M$,[%F0!_[Z\-^=5A/+83QPR-YT,N0C,.I'4$?UIDVK6\)*B3SI?^>4(W-^G
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
M[LV5.,>AD:9X7L-, *1>;(/XY.<?0=!6O117.:!1110 4444 %%%% !1110
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
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %-,:'JH
M/U%.HH A:RMW^]!$WU0&H7T>P?[UE;G_ +9+_A5RB@#.;P]IK=;*'\%Q4;>%
MM+;_ )=%'T9A_6M6B@#'/A+2C_R[8^CM_C3#X/TL_P#+!A]'-;=% &&?!FEG
M_EDX_P"VAII\%:8?X)!_P.MZB@# _P"$)TWTE_[[I/\ A"--_P"FW_??_P!:
MN@HH Y__ (0?3?\ IM_WW_\ 6H_X0C3?^FW_ 'W_ /6KH** ,#_A"=-])?\
MONE'@K3!_!(?^!UO44 87_"%Z7_SR?\ [^&G#P=I8_Y8M_WV:VZ* ,4>$-+'
M_+N3_P #/^-/'A/2A_RZ@_5V_P :UZ* ,M?#.EKTLT_$D_UJ5=!TY>EE!^*
MU?HH JKI5DGW;.!?I$O^%2K:PI]V&-?HHJ6B@!HC4=% _"G444 %%%% !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
L0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 ?_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>17
<FILENAME>dsgx-20220131xex99d2001.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20220131xex99d2001.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>18
<FILENAME>dsgx-20220131xex99d2002.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20220131xex99d2002.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" "! Z,# 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#U_P#X7WX_
M_P"AFN?^_4?_ ,31_P +[\?_ /0S7/\ WZC_ /B:X"B@#O\ _A??C_\ Z&:Y
M_P"_4?\ \31_POOQ_P#]#-<_]^H__B:X"B@#O_\ A??C_P#Z&:Y_[]1__$T?
M\+[\?_\ 0S7/_?J/_P")K@** .__ .%]^/\ _H9KG_OU'_\ $T?\+[\?_P#0
MS7/_ 'ZC_P#B:X"B@#O_ /A??C__ *&:Y_[]1_\ Q-'_  OOQ_\ ]#-<_P#?
MJ/\ ^)K@** ._P#^%]^/_P#H9KG_ +]1_P#Q-'_"^_'_ /T,US_WZC_^)K@*
M* .__P"%]^/_ /H9KG_OU'_\31_POOQ__P!#-<_]^H__ (FN HH [_\ X7WX
M_P#^AFN?^_4?_P 31_POOQ__ -#-<_\ ?J/_ .)K@** ._\ ^%]^/_\ H9KG
M_OU'_P#$T?\ "^_'_P#T,US_ -^H_P#XFN HH [_ /X7WX__ .AFN?\ OU'_
M /$T?\+[\?\ _0S7/_?J/_XFN HH [__ (7WX_\ ^AFN?^_4?_Q-'_"^_'__
M $,US_WZC_\ B:X"B@#O_P#A??C_ /Z&:Y_[]1__ !-'_"^_'_\ T,US_P!^
MH_\ XFN HH [_P#X7WX__P"AFN?^_4?_ ,31_P +[\?_ /0S7/\ WZC_ /B:
MX"B@#O\ _A??C_\ Z&:Y_P"_4?\ \31_POOQ_P#]#-<_]^H__B:X"B@#O_\
MA??C_P#Z&:Y_[]1__$T?\+[\?_\ 0S7/_?J/_P")K@** .__ .%]^/\ _H9K
MG_OU'_\ $T?\+[\?_P#0S7/_ 'ZC_P#B:X"B@#O_ /A??C__ *&:Y_[]1_\
MQ-'_  OOQ_\ ]#-<_P#?J/\ ^)K@** ._P#^%]^/_P#H9KG_ +]1_P#Q-'_"
M^_'_ /T,US_WZC_^)K@** .^_P"%^_$ ?\S+<?\ ?J+_ .)H_P"%^^/_ /H9
MKC_OU'_\37GYZTE '?O\?_B /^9EN?\ OU'_ /$U'_PT%\0A_P S+<?]^HO_
M (FN"?[PJ%Z /0W_ &@/B$/^9FG_ ._47_Q-,_X:"^(?_0S7'_?J+_XFO/WI
MHZT >A']H+XAC_F9KC_OU%_\33?^&A?B&/\ F9;C_OU%_P#$UY\WWA3'ZT >
MA_\ #0OQ#_Z&:X_[]1?_ !--/[0_Q#Q_R,MQ_P!^H_\ XFO/*8?O4 >B?\-#
M?$0_\S-<#W\J/_XFD/[0GQ$Q_P C3/\ ]^8O_B:\\/2FCK0!Z$W[0WQ%7_F:
M+C_OS%_\33?^&B/B+_T-%Q_WYC_^)KSV7[U1MTH ]%;]HKXB@?\ (T7'_?F/
M_P")IO\ PT7\1O\ H:+C_OS'_P#$UYRW2FT >C-^T7\1^,>*+@?]L8__ (FF
M_P##1GQ(_P"AIG_[\Q__ !->=-3&H ]'/[1GQ(S_ ,C3<?\ ?F/_ .)I/^&C
M/B1_T-5Q_P!^8_\ XFO.*:W6@#T=OVC_ (D*/^1IN/\ OS'_ /$U$?VD?B5U
M_P"$JN!_VQB_^)KSF7[M1M]V@#TK_AI#XE?]#5<?]^8O_B::?VD?B7GCQ5<_
M]^8O_B:\V_@H'2@#T@_M)?$L#_D:KC_OS'_\32#]I/XE?]#5<?\ ?J+_ .)K
MS9^E,H ],_X:3^)7_0U7'_?J+_XFFG]I/XEY_P"1LN/^_,?_ ,37FK?=%,H
M],_X:5^)0_YFRX_[\1__ !-,_P"&E?B8/^9LN?\ OQ'_ /$UYH]#T >E']I;
MXF8_Y&RX_P"_,?\ \33?^&F/B;_T-EQ_WYC_ /B:\T/2F'I0!Z:?VF?B;_T-
MEQ_WYC_^)II_:9^)O_0V7/\ WYC_ /B:\RI#TH ],?\ ::^)VT_\5;<_]^8_
M_B:B_P"&F?B?_P!#;=?]^HO_ (FO-7^Z:CH ]._X:9^)_P#T-UU_WZB_^)H_
MX:;^)X_YFZY_[]1?_$UY@W2FT >H-^TY\3\?\C=<_A#%_P#$TW_AISXG_P#0
MW77_ 'ZB_P#B:\P;I3&Z4 >H-^T]\3Q_S-MU_P!^HO\ XFF-^T_\4.,>+KH?
M]LHO_B:\O:FM0!Z@?VG_ (HG_F;[H?\ ;&+_ .)IO_#3_P 4A_S-]T?^V,7_
M ,37E]!Z4 >H?\-0_%''_(X70_[8Q?\ Q--'[4GQ27@>,;K_ +\P_P#Q!KRW
M^$U%_$* /5V_:F^*@''C"Z_[\P__ !NFC]JCXJ_]#?<_]^8?_C=>6MTJ.@#U
M1OVI_BMG_D<+H#_KC#_\;I/^&J/BM_T.-U_WYA_^-UY8?NTQONB@#U,_M5?%
M<?\ ,X77_?F'_P"-T?\ #5?Q6_Z'"Z_[]0__ !NO*F^Z*90!ZK_PU;\5_P#H
M<+K_ +]0_P#QNC_AJWXK_P#0X77_ 'ZA_P#C=>3T4 >J_P##5GQ9_P"ARNO^
M_4/_ ,;J/_AJ_P"+/_0Y77_?J'_XW7E=14 >L_\ #5_Q9_Z'*Y_[]0__ !N@
M_M7_ !:Q_P CG<_]^8?_ (W7DU!Z4 >K_P##6/Q:_P"ASNO^_,/_ ,;I#^UE
M\6L'_BL[K_OS#_\ &Z\F/2F#O0!ZS_PUG\6SQ_PF=T/^V,/_ ,;II_:R^+?_
M $.MS_WYA_\ C=>2G[U-_B- 'K9_:R^+G_0ZW7_?F'_XW33^UG\7/^AUNO\
MOS#_ /&Z\FIG\1H ];'[6OQ<&?\ BM+K_OS#_P#&Z8?VM?BZ3QXTN?Q@@/\
M..O)5_BIIZT >M_\-:?%[_H=+G_P'M__ (W1_P -:_%T=?&ES_X#6_\ \;KR
M0=#3#UH ]<;]K7XN9X\:7/\ X#6__P ;I/\ AKCXNK_S.ER?^W:W_P#C=>1-
MUIC=: /7F_:Y^+N?^1TN1]+:W_\ C=)_PUQ\7C_S.]R/;[-;_P#QNO(&ZTE
M'KK?M<?%_/\ R.]U_P" UO\ _&Z3_AKGXO?]#O=?^ UO_P#&Z\A/6F'K0!Z\
M?VOOC""0/'%Y_P" ]O\ _&Z8?VOOC#G_ )'>Z_\  :W_ /C=>0GK3&^]0![#
M_P -??&'_H=[S_P&M_\ XW2?\-@?&'_H=[K_ ,!K?_XW7CYZTR@#V'_AK_XQ
M?]#S>?\ @/;_ /QNF?\ #87QC_Z'F\_\![?_ .-UX_3* /8_^&P/C%_T/%U_
MX#6__P ;HKQRB@#ZHHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@!IZTE*>M
M)0 U_O"H7J9_O"H7H 'IHZTYZ:.M "-]X4Q^M/;[PIC]: &TP_>I],/WJ  ]
M*:.M./2FCK0 V7[U1MTJ27[U6=&L(=4UBPL[B[2P@N)TBDNI,;859@"YR0,
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
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@!IZTE*>M)0 U_O"H7J9_O"H7H 'IHZTYZ:.M "-]X4Q^M/;[PIC]: &
MTP_>I],/WJ  ]*:.M./2FCK0 V7[U1MTJ27[U1MTH ^BOV)?^1YU_P#[!P_]
M&K7D_P ;O^2N^+O^PE-_Z%7:_LN?$3P]\.?%6KWGB+4/[/MI[(0QOY,DNYMZ
MG&$5B. >M>>?%+6K+Q'\1O$6J:=-]HL;N]DFAEVLN]">#A@"/Q%$]90MV?YA
M#2,_5?D?5FN_##5/BQ^SCX(T?2+BSMKF.&TN2]Z[JFT0LI&55CG+#M5+6OAY
MJ7PO_93\2:'JL]K<7:%I2]F[-'AI4QRRJ<_A7FGQ1^*'ACQ%^S[X2\-:?J?V
MC6[$VQN+7[/*NS9"ZM\S*%."0.":A\._$_PS8?LPZSX2GU+R_$%Q([16?D2G
M<#(C#YPNP< ]315U=6W5_?ML.GI[*_2WRWW/:OA18^)M2_9ET&#PAJ-MI6NL
MK&&ZNU#1J!<-N!!1^JY'W3^%>$?M)6/Q)T:WT.U\>>(-/UJ&9I9;5;")5\ME
M"ABQ$,9Y##U[UVO@[XA_#+6?@#I?@CQ7XDN=,E4$W"6EK,9$(G:1<-Y3KSQZ
M]:\B^*^A?#/2;&P?P'XBU+6KMY&%RE]&RA$QP1F&/G/N:=;6I)]+^HJ6D$O+
MT*W[/_\ R6CPC_U^K_(UZ%^W#_R4O1_^P2G_ *-EKRSX0>(-/\*?$[PYJ^J7
M'V73[2Z$DTVQGV+@\X4$G\!7T-\3O$_P'^+'B*SUG6_&&I+-:P+;B"UM9TB=
M S-\V;<MSN/1A1-7C#R;_(4':4_-+\S:\ S/XI_8XU :TS7*0Z=>+'),<G;$
M7,7)_NE5 _W14G[-=KK=[^S;/!X;O(=/UQ[FX%I<W !CC?<.6!5N,9_A->6?
M&?\ :)T34_ T7@;P#8RV&@*BQ37$B>66C'/EHN2<$_>9N3SZY.K\'/B7\.X/
M@/=>"_%OB";2Y;R683);VTSR*C,""K+$ZYX]Z&^=U)+JEY7U!+E5.+Z-OTT*
MWQNT_P")'AZS\.?\+.\2:;KOAF758FDMM/A57^7)8DB",XV%QP3UZ5[WXOL?
M%_C'2]-OOA7XUTC2]*2W"+;_ &2.6*0\8_>;'V@+QM"\8]^/EGQ1IOP6\*3Z
M%J?AK7]6\2RP:I ][I][;Y22U!)DP'@C5B< 8+8.?R[2QN_V?;+7(?$.D^*/
M$'AJZ1A)_9]B+A%)#;MI/E,<$@<!P.G2A6:L^_Z+[QNZ=UV_5_<6=)\)^)?'
MW[2>C6?Q.T^S-SI^G&=5MD_<7D:,Q1CR01O?D8'W<$=<T_CA^U%XT\,?%#4=
M'T"YM]-TS2IA!Y+6T<OV@@ L7+ D#.0 I7CWK'\=_M3+?_&;0_%6B6,G]E:1
M&UL(KC"R74;G]X3C.W(QM'." 3UQ70^,-?\ V??BEK*>)]8U;5M(U215:YL8
M+>5?/( P'VQNN<#&5<?7O4J[47T5[_?O]PW92EYVM]VWWGGW@DR_M%?M&6.H
MWUDEK%.\=W>PQ,60)#&H/4=&90,=MV,GK7TI\2[NS^.?@+XD>&M/B$M_X?N
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
MPQ9L$D=.M=9=?&SX._'_ .&GA[2/B9J6J>%]9T957SK&%W$C! K,C+'*-K
MD,H((X/<DTIJ?)HN9->@HOD<.;>S7W[+_@EWXJ?\F ^$?^W3_P!#>O4?%O\
MPM3_ (45\-O^%4X_M3[%:?;-WV7'D_9EZ_:./O8^[S7SC^TK^T!X.\0?#G0O
MAM\/8[F70-->-I+V=&C$BQJ0B*&PQR3N)8#D#CKC4^-?[2FFWGP4^'^B^ _&
M>HV/B#3HH(M1CTTW5FRJMN%*E]JAP''0$^M5*5U5DNLTUZ?Y=R(QM[.+Z1:?
MK_6QU?[>US;_ /"M? 5OKQLF\=[U>?[*.B>5B?;W"&3;C/I[&OAW^(UH:OK6
MH>(-0EO]4OKG4KZ4YDN;R9I9'/NS$DUN_"O3?"&K>-[.V\=:K=Z+X:=9#<7E
MBI:5"$)0 ".3JV!]T]>W6IC&[;[Z^1<I6BEVT/M/]K7_ ),_\)_]PW_T0:P_
MV!M?A\*_"'XC:U<1M+!IT_VN1$^\RI 6('O@5T'Q%^,/[/GQ,^&MAX*U+Q[J
M,&EV @\J6TL+E9V\I"B[BULR\CKA1^%>)?L\_&#P;X!^"GQ1\/:QK!L]3UB*
M>/3X#;32&?-NR+\R(57)('S$54IVE7G'KJOP_P B8035",NED_Q/I_PG\);&
MS_:*L/B?X7"3>&O$VD32SO#]U;A]CA\=A(O/^\&SU%<!^R[X1TBQ\;?&7X@W
MEHMYJ.E:S?06NX F%5:220KGHS A<^@([FN'_8Y_:OT3X=^&;WPIXYU-[#2[
M4^=IEV8)9]H8_/"1&K$#)W XQRPSTKFO@E^U+I7PK^+'CHZA%+J?@OQ)J<]Q
MYL$>7BS*Y278V"5*-\RG!Z<9&"./++EIO[+2?:[3M^:_X D^:/--7]Y7\[)J
M_P"3_P""4M/_ &^_B3!XKGO[]K'4-$F+ Z)]G2)(T/9)0OF!AZL6'M7S1,_F
M2LV,;B3BOL"=OV3O#FKW/B:UO]7UZ;F6'PX;68VR/C( 62) 0#_"\A7GH17/
M? WQU\&M%^!?B;3O&-KH[^,9WO#8M>:(US.H:%1%MF$3!?GSCYA@\\5GHHN5
MM4OO\O-FN[2OHW_3\D?+C=:2E;K259 T]:8>M//6F'K0 P]:8WWJ>>M,;[U
M >M,IYZTR@!M,I],H **** /JBBBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M &GK24IZTE #7^\*A>IG^\*A>@ >FCK3GIHZT (WWA3'ZT]OO"F/UH ;3#]Z
MGTP_>H #TIHZTX]*:.M #9?O5&W2I)?O5&W2@!C=*;3FZ4V@!&IC4]J8U "4
MUNM.IK=: (Y?NU&WW:DE^[4;?=H 3^"@=*/X*!TH :_2F4]^E,H &^Z*93V^
MZ*90 UZ'H>AZ &'I3#TIYZ4P]* &TAZ4M(>E #'^Z:CJ1_NFHZ $;I3:<W2F
MT (W2F-TI[=*8W2@!C4UJ<U-:@!M!Z44'I0!'_":B_B%2_PFOIS]@#_DJ.O_
M /8';_T='5QCS/Y/\%<B4N57]/Q9\PMTJ.OJ'XX^+_'\?AF_BUWXG>"O&.A/
M>(LOA_3;J%[B15DW*K"**.0*"HW%7!]ZI?%KX>^#=!N/A);:7X5L[#_A*([6
MZOY8[N[=OF:,-&F^9@JG>>Q;@885$+SM;JTOO5RYVA>_1-_=H?-9^[3&^Z*^
MY]?_ &4? U[\4/#TGA[3//\ #%M=R:=X@TI;N=C!+Y+21N7+[P#N3.&QROJ:
M\E^#?PB\'ZAXH^(FN>,;)F\$>&II;9(?/DC!D,Q5!O5@QVJ/7JPS1'WFEY-_
M=;\[JWJ$O=_#\;_E9W/G!ONBF5]3:)^SYX>T_P#:SF\%ZMIK7GA2XMYKZR@-
MQ(NZ$QEDPZL&.U@5Y/.WG-;6K_LS>$K"'Q]XCL;+^T_",WAR35O#MPMS+BUF
M53N0D-EBIP0'SP<')!J;VBI=TW]U]/71C2O)Q71I??;7TU1\>45] ^/O GA+
MX'> O TNH^&HO%GB+Q#;#4+J74+RXBAMXL*?*C6"1.?G W,6Z$XYP-3X(>%/
MAY\1YOB),?!D<FGZ1IK:GIZWM[="=&"<Q.T<RJZ!E.#@,0>3V%/3F_NWO\M_
MU^XE:J+[VM\]CYGJ*OH_]FSX8>#O%UIXJ\:>/-,2/PI9SPV=O:PW$T423S2J
M,*PDWD(&0?,QX?)R16OX(_9WT"U_:D\2^"/$&F-?:#!97%[8PM<2)F,[6B.]
M&#' 8KR>2#FB7NNS[-_<KV];:@G=-KHTOO=K^E]#Y9H/2GS*%E=1P Q KZX_
M9#UCPK#\.->T[3O$.C^$OB=<W)6TU75H(Y'6,A=@B\P@-GYP5!)R<E2,"JBN
M9-]@E[LE%]['R">E,'>OL+]IF'QYX:\(Z+=^/M)\+_$"P2^S;>((!+ TBM$X
M$4RP&)AG[RE&V_)SG(KA?VAO#?@_X>>'?!9T3P1I5O<^(]"2_GN9+N_D>WE8
M+S$#<[<#/ <-[YK.^C?G;\+_ *%6U2\K_C;]3YT/WJ;_ !&OLGP-^S%X-U7X
M.Z?IVI6+GXH:]HUUK.FRM<R)Y:H4\I-@8)R'3[RD\OSP,>=?LJ^$O"GQ)\5W
M_AGQ-X-T^\^PZ9<WAOOM5[%<R2(ZX5PEP(\#<1@(#P.<Y)N2Y92B^B;^Z]_N
MLT2O>BI+J[??:WWW/GNF?Q&OI3X!^#O"7Q8L?B'J-]X)T2WGT31Q<6-HFHWE
MO:>=^\.^622ZR <*"3(J@#/')IOP8^&V@>/?CCH/A[Q)X3\,VNES6=U-);>&
M]>EO$F*IE3)(EY,4((X 9<Y.0::5Y<OE?\_\A.22<O.WY?YGS6O\5-/6ON+X
M:_LC>$+KXX>-K76]/^W>#85A.BP?:Y464SH9E"NCAFV(CCDG/4YKA=+^$'A>
M'X&ZOXEMO"VAZIKT'B>XTV-O$&MRV-LMLI.%W&Z@4L,#'S9//6HOHGY7_%+[
M]2[:V\[?@W^GWGRN.AIAZU]9_LZ?"GX?^.;SXB7/CS0=*L;/219)%_8VKS2V
MEIYH=6=)DN) X)"$EG< YZ $51^(_P"SSI?P4^#FIZMK.A0:KX@L/%*VL%W<
MSW"PWEBT89 5CD08;/)7# @C=Q3E[F_9/[VE^OW"7O:+^K*__ ]3Y8;K3&ZU
M]+_$'0O!/AGX ^ O&UG\/-$.K^(9KB*YCEO=2,,81G"F-?M>0?E'WBU=I+^S
M%IA\">$M7\$>"=/^)UC<VBS:O?'7);>\\PKED@594B3;TPRNV2 5XS3:LY)]
M'9B332:ZJY\9-UI*U?%=K#9>)]7M[:RN=-MXKN5(K.]&)X%#D".3_:48!]P:
MRJE.ZN4U9V&GK3#UIYZTP]:8AAZTQOO4\]:8WWJ  ]:93SUIE #:93Z90 44
M44 ?5%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 -/6DI3UI* &O]X5"]3/
M]X5"]  ]-'6G/31UH 1OO"F/UI[?>%,?K0 VF'[U/IA^]0 'I31UIQZ4T=:
M&R_>J-NE22_>J-NE #&Z4VG-TIM "-3&I[4QJ $IK=:=36ZT 1R_=J-ONU)+
M]VHV^[0 G\% Z4?P4#I0 U^E,I[]*90 -]T4RGM]T4R@!KT/0]#T ,/2F'I3
MSTIAZ4 -I#TI:0]* &/]TU'4C_=-1T (W2FTYNE-H 1NE,;I3VZ4QNE #&IK
M4YJ:U #:#THH/2@"/^$UZ7\ /C;_ ,*,\4W^L?V-_;?VNS-IY/VK[/LRZMNW
M;'S]W&,=Z\T_A-1?Q"FFUL)I/<T+B]@O-9DN[J"1K:6X,LL$,H1RI;)57*D
MXX!*GUP>E>K^/OC_ *5XT?P-+#X6O+"?PGY$5LTFKI,LT,90E7 MU.X[%^8$
M <_*:\;;I4=$?=22Z.Z^0Y>\VWU_4^@O#7[7>I>&/B[XE\90:&)--UX)]IT1
MKWA61 J.)?+ZC!_@Z,1Z&L'4/VEM2M?A_<^'?#%E<^%KV]U>;5KW5[+46$TQ
MD=F$8VHI4 %!G<<A.@S7C9^[3&^Z*FVB796^6_Z#OJWWU_"Q]#V/[7CQ^(/!
M7B#4?"QU+7?#VGS:?/?-J6U]05T"AGS$2I!RW5LEFZ9KG? ?[3>I>#OA;XH\
M#7.EC5=.U:*>.UE-SY;6/G*P?C8V]<G=CY><\\\>,-]T4RF_>O?K^KO^81?+
M:W2S^Y67X'J]W\;]-\7>"?#OA[QMX8EUU_#X\JPU#3]2^Q3>1@#RI,Q2!QA5
M&0%/ YSDG5^'_P"T%H'@*Z\736_@>15\0VQL&M;/5A!!;6^P* @:!V+]279C
MDGIUSXA10];M];W^>_\ 7^8EI9=MOEL>OW/[15[H_P +M,\%^"K74/!\5K>R
M7D^I6^JL;JZW%MJLT<<>, @''!VC@5UEG^V.$\9>'?%-[X/%YK6G:+)H]Y<+
MJ>PWP;81(?W)VD%7./F^_P!>.?G&HJ'K>_7_ "M^6@K6M_76_P"9T/B74/"U
M[;I_86C:QIMUYFZ234=6BNT9<'@*EM$0<XYW'Z=Z[OP-\:O#FC> X?"GBWX=
M:?XQL;::2:VN3>R6=S$7()7S45FQD=!C/&<XKR.@]*%HK#>KNSUGXL?M R_$
M#P=I'@[1?#UMX3\'Z6_FP:;#</<R%_FY>5P"WWF/3J223QBC\2_C3;_$QO J
M7>@&VM?#5A#I\L(O=QO$0KN.?+'E[@I'1L9[UYB>E,'>A:._G?Y[?J#UT\K?
M+<^@M4_;-\4W/Q:TSQ38QW>F>'K!(X5\*Q:D_P!EDB52K!L*%+')(8IQA>#M
MKG_!/[0MGX%^,GBCQO8>% +;6H+B%=)%_M%N9F5F(D\KD!E/&T=<9XY\:/WJ
M;_$:5OU7W[CO^GX;'J'P;^,UM\+=)\9:9>Z%+K5IXEL/[/F\B^%K)"A#@LI,
M4@)P_&1QCO4_PP^,7AWX0?$C3?%/A_PMJDJVT$\,UGJ6MQRF4NNT%72U39CG
M(*MGCD5Y13/XC57=[^5OEK_FR6DU9][_ #T_R1]#>#/VS_$?A[5_#4FHZ1:Z
MGI6@+<+!:0S-;RS>8A1#+*0X;RU8JN$'!-<^OQ^T;4OA=?\ @?7/"E]=V5UK
M<NM?:=/UA+:16<DB/Y[:0$#)Y[^U>+K_ !4T]:EI/?\ K5/\TBK_ .?X-?DV
M>I^&/C'IG@OPA\0O#>C^'KL:?XJMH+>-[[4UEEM/+W$L2L""3)8\83 ]>M;/
MCK]J/4_B%\#=)^'VKZ4)KO3YHG&M?:OFE2,,$5HMG7:0"V[G&<<UXF.AIAZT
MY>]OY?AM]P)V=UY_BK/\CTGQC\9O^$K^#O@SP'_8_P!E_P"$=EFE_M#[3O\
MM'F,QQY>P;<;O[QZ5T'@_P"/WAOP3XQM/%VE^ I-.\0V\10Q:;K36^G2L5V[
MGM_)9L9YV+(%R!Q7BC=:8W6G=\SEU>I-E91Z(T_%OB6]\9^)]5U[461K_4KF
M2ZG,:[5WNQ8@#L.>*R:5NM)4I**LBFW)W8T]:8>M//6F'K3$,/6F-]ZGGK3&
M^]0 'K3*>>M,H ;3*?3* "BBB@#ZHHHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@!IZTE*>M)0 U_O"H7J9_O"H7H 'IHZTYZ:.M "-]X4Q^M/;[PIC]: &T
MP_>I],/WJ  ]*:.M./2FCK0 V7[U1MTJ27[U1MTH 8W2FTYNE-H 1J8U/:F-
M0 E-;K3J:W6@".7[M1M]VI)?NU&WW: $_@H'2C^"@=* &OTIE/?I3* !ONBF
M4]ONBF4 ->AZ'H>@!AZ4P]*>>E,/2@!M(>E+2'I0 Q_NFHZD?[IJ.@!&Z4VG
M-TIM "-TIC=*>W2F-TH 8U-:G-36H ;0>E%!Z4 1_P )J+^(5+_":B_B% #V
MZ5'4C=*CH #]VF-]T4\_=IC?=% #6^Z*93V^Z*90 RBBB@!E15+45 !0>E%!
MZ4 ,/2F#O3STI@[T ,/WJ;_$:<?O4W^(T %,_B-/IG\1H :O\5-/6G+_ !4T
M]:  =#3#UIXZ&F'K0 UNM,;K3VZTQNM #6ZTE*W6DH :>M,/6GGK3#UH 8>M
M,;[U//6F-]Z@ /6F4\]:90 VF4^F4 %%%% 'U1^?Y4N/8UXC_P +OU@_\NUL
M?PI1\;-8/_+K;_D: /;<>QHQ[&O$O^%UZP/^76W_ "-*/C5K!Z6MO^1H ]LQ
M[&C'L:\57XT:P>MM;C\#3O\ A<^K_P#/M;_D: /9\?Y-&#7C(^,NK'_EVM_R
M-+_PN35O^?6W_(T >RX-&#7C8^,>K'_EVM_R-'_"X]6_Y]K?\C0![)@^U&#[
M5XZOQCU;_GVM_P C3O\ A<.J_P#/M;_D: /8,'VHP?:O(?\ A;VK'_EVM_RI
M?^%N:M_S[6_Y4 >N49KR1?BWJAZV]O\ E2_\+9U/_GWM_P J /6LT9KR9?BQ
MJA_Y=X/RI?\ A:^I_P#/O!^5 'K&:6O*/^%JZG_S[P?E2CXJ:EG_ %$'Y4 >
MKX_SQ1C_ #Q7E?\ PM34_P#GA!^5 ^*>IG_EA!^5 'JF*3!KRX?%+4\_ZB#_
M +YIP^*.I'_EA!_WS0!Z?@TNTUYA_P +/U$_\L(#^%*/B=J)_P"7>#\J /3M
MIHQCK7F:_$O4#_RP@_*E_P"%E:A_SP@_*@#TKCU/Y4<>I_*O-?\ A95__P \
M(?RI1\2;\G_40_E0!Z3QZG\J./4_E7G'_"Q[_./(A_*G?\+$OO\ GC#^5 'H
MO'K1QZUYT/B-?YQY40^E._X6)?\ _/..@#T/CUHX]:\]'Q#OR/\ 5QTX?$&_
M/_+..@#OCC/6CCUK@?\ A/;\_P $='_">WV<;(Z .ZD/S"HW ]17%OXZON#L
MCII\;WA_Y91T =JY'J*3@=Q^=<:?&5V?^6<=+_PF%W_<3\J .O8@\Y%1EL]Q
M7)_\)==G^!*=_P )9=?W$_*@#JO\]:C/WO\ Z]<U_P )5<_W$I?^$FN2WW$H
M Z0]/_KT@Z__ %ZYT^);D_PI2#Q'<9^ZGY4 =!+][_Z]1OT[?G6&VOSN>53\
MJ3^W9O[B4 ;+'CM^=(.:R#K4Q'W5IPU>4?PK0!J/QBF'FLYM6E..!1_:<O'
MH T"#V&:0@GM5$W\C<X% O7/I0!:F&!41Z8J,W+..0*3S3Z"@"3MBCI3!(2.
ME'F>U "OTIE2??6D\OWH C))XIM3[<8%!@!/6@"L^/6FE@>XJ\;5#2_84]30
M!G$G'2F\^E:/]GQ^II?[+CX^8T 99'M2=>U:W]E1?WFI!I$1_B:@#'<?*>OY
M5'@^A_*MTZ+"?XF_.E&A0D9WO0!@,"!W_*F_YZ5T0\/P,.7>@^'+<?Q/^= '
M.-T_^M3&Z?\ UJZ?_A&K8C[[T?\ "+VQ_C>@#E6_SQ33S_\ JKJSX4MC_P M
M'I5\)VW_ #T>@#D3D=B?PI#D]C^5=A_PB-JW61Z7_A#[3^_)^= '&$8'0U'M
MR<\UV_\ PAMFP^_)0/ ]DW)DDH XDC(IF*[P>!+$C_624G_" V/_ #TDH X-
MN!49)/']*] _X5_8L/\ 624?\*]L/^>LE 'GS D"F8/O^5>B'X?6!'^LDI/^
M%>6'_/66@#SG!]_RH_$5Z+_PKJP_YZRT?\*[L/\ GO/_ -]4 >;X/O\ E4.X
M5Z;_ ,*XL/\ GK+3?^%:Z?\ \]Y_SH \UY]OSH/2O2O^%;6'_/>;\Z3_ (5K
M8?\ /Q/^= 'F9Z=*:N.:]-_X5GIYZSS_ /?5(/ACIP_Y;3_]]4 >8D#=49'S
M&O4O^%8Z;G/G3_\ ?5(?A=II_P"6\_\ WU0!Y?Q3=H'->H_\*MTW_GO/_P!]
M4?\ "K=-_P">\_\ WU0!Y7P,U&3S7JW_  JO3?\ GO/^=)_PJG3/^?B?\Z /
M*MQ'^33">:]8_P"%4Z9_SWG_ #I#\*-,/_+>?\Z /)F//_ZZ:>:]:/PFTP_\
MO$_YT?\ "IM,_P"?BX_.@#R-AS32<&O73\)-,/\ R\7'YTA^$>EG_EXN/SH
M\B/--(YKU_\ X5%I?_/Q<?G2'X0Z6?\ EYN/SH \>(YIC8W5[%_PI_2_^?FX
M_,4A^#FE$Y^TW'YT >/$C/>F<>HKV3_A3FE?\_%Q^=)_PIK2?^?BX_.@#QC/
MN*9GW%>U?\*:TG_GXN/SIO\ PIC2/^?BX_,4 >,\>HHKV7_A2VD?\_-Q^8HH
M \07@T\'FNC'PN\9#_F4M=_\%LW_ ,33T^%_C(G_ )%+71_W#9O_ (F@#FL_
MC3DYSVKIO^%6^,O^A3UW_P %LW_Q-.7X7>,AG_BD]=_\%LW_ ,30!S5.4X'2
MND_X5AXQ_P"A3UW_ ,%LW_Q-.7X8>,<?\BGKO_@MF_\ B: .<4\=*<.>U=(O
MPP\8X_Y%/7?_  6S?_$TH^&/C$?\REKG_@MF_P#B: .<!QVI1SVKH_\ A67C
M'_H4M<_\%TW_ ,33E^&/C''_ "*>N?\ @NF_^)H YQ ":>O/:NC7X9>,5_YE
M/7/_  73?_$TY?AEXP'_ #*FN?\ @NF_^)H YT DXS2Y(KI%^&?C '/_  BF
MN?\ @NF_^)I?^%9^,/\ H5-<_P#!=-_\30!S2]33E^:NC'PS\7C_ )E37/\
MP6S?_$TJ_#3Q>O\ S*FN?^"Z;_XF@#GT(]*>#STKH5^&?BY?^96UO_P73?\
MQ-.'PU\79_Y%76__  73?_$T <]GVH'6NC_X5KXN_P"A5UO_ ,%TW_Q- ^&O
MB[/_ "*NM_\ @NF_^)H Y]>M/!YZ5T ^&OB[/_(K:U_X+YO_ (FGK\-?%V?^
M16UG_P %\W_Q- '/$^U"]:Z/_A6OB[_H5]9_\%\W_P 32CX:^+A_S*^L_P#@
MOF_^)H YY>#4BGGI6^/AMXMS_P BOK/_ (+YO_B:>OPV\6D_\BOK1^FGS?\
MQ- '/@YI:Z(?#?Q:/^96UO\ \%TO_P 32_\ "M_%O_0K:W_X+I?_ (F@#G*4
M=:Z+_A6_BW_H5M;_ /!=+_\ $T#X<>+1_P RMK?_ (+I?_B: ,#^(5)6\/AS
MXL//_"+:V/\ N'R__$U)_P *Y\6'_F5]:_'3Y?\ XF@#G/XA4E;_ /PKCQ9G
M/_",:S_X+Y?_ (FG#X<^+#_S*^L_^"^7_P")H P!TIPZ5T"_#CQ7C_D6=9'_
M '#Y?_B:</ASXK'_ #+.L_\ @OE_^)H P!TH_B%=$/AUXJQ_R+.L_P#@OE_^
M)I1\./%60?\ A&M9_P#!?+_\30!@NO%-KHS\/?%)&/\ A&=9_P#!?+_\32?\
M*Z\5?]"UK/\ X+Y?_B: ,.G5O?\ "O/%7_0LZQ_X 2__ !-+_P *^\4_]"SK
M'_@!+_\ $T 8(ZTX=:W1\/O%.1_Q3.L?^ $O_P 34G_"O/%7_0M:O_X 2_\
MQ- &".M/'6MS_A7WBG_H6]7_ / "7_XFGK\/_%.?^1:U?_P E_\ B: ,*@<5
MO_\ "OO%'_0MZO\ ^ $O_P 31_PK[Q1_T+>K_P#@!+_\30!A]LT5O#P!XHQC
M_A&]7_\  &7_ .)I?^%?^*/^A;U?_P  )?\ XF@##_A%2#I6T/ /B<\'PWJX
M_P"W"7_XFG_\('XF_P"A<U?_ , )?_B: ,(]13O2MO\ X0'Q,?\ F7-7_P#
M"7_XFG_\(%XF/_,N:O\ ^ $O_P 30!BCI3EZ5M#P%XG[>'-6_P# &7_XFG#P
M'XG'_,MZM_X R_\ Q- &*O2EK<3P%XF(Y\.ZL/\ MQE_^)IW_"!>)?\ H7M6
M_P# &7_XF@##'2EK<_X03Q*/^9>U;_P!E_\ B:/^$$\2_P#0O:M_X R__$T
M8Z?=%+6XG@/Q+M'_ !3NK?\ @#+_ /$TO_"!^)?^A=U;_P  I/\ "@#"ZL*?
M6U_P@?B7.?\ A'=6_P# *3_"G_\ "!^)3_S+NK?^ 4G^% &/VS3ZVO\ A!/$
MN,?\(]JW_@%)_A3O^$%\2_\ 0O:K_P" 4G^% &'3^PK9'@7Q)G_D7M5_\ I/
M\*?_ ,(+XDX_XI_5?_ *3_XF@#%I1Q6U_P (-XD_Z%_5/_ .3_XFE_X0;Q%_
MT =4_P# *3_XF@#&'(S3Q]VM@>"/$0&/[ U3_P  Y/\ XFG+X)\1=/[ U/\
M\ Y/_B: ,E>E#=*V1X)\1 ?\@'4__ .3_P")I3X)\0G_ )@.J?\ @')_\30!
MD#I3EZUK#P9XA'_, U3_ , Y/_B:<G@OQ"3_ ,@#5/\ P#D_^)H R*<M;'_"
M$^(CTT'4_P#P#D_^)IR^"/$9S_Q(=2_\ Y/_ (F@#'6G5LCP1XB'_,!U+_P#
MD_\ B:/^$)\1?] '4O\ P$D_^)H QUZ4X#WK87P3XBQ_R =2_P# 23_XFGKX
M)\18_P"0#J7_ ("2?_$T 92?=%+6NO@SQ"!C^P=2_P# 23_XFG?\(9XA_P"@
M%J7_ ("2?_$T 9 Z4M; \&>(,?\ ("U/_P  Y/\ "E_X0S7_ /H!ZG_X!R?X
M4 8U%;/_  AFO_\ 0#U/_P  Y/\ "C_A#-?_ .@'J?\ X!R?X4 8U%;/_"&:
M_P#] /4__ .3_"C_ (0S7_\ H!ZG_P" <G^% &-16S_PAFO_ /0#U/\ \ Y/
M\*/^$,U__H!ZG_X!R?X4 8U%;/\ PAFO_P#0#U/_ , Y/\*/^$,U_P#Z >I_
M^ <G^% &-16S_P (9K__ $ ]3_\  .3_  H_X0S7_P#H!ZG_ . <G^% &-16
MS_PAFO\ _0#U/_P#D_PH_P"$,U__ * >I_\ @')_A0!C45L_\(9K_P#T ]3_
M / .3_"C_A#-?_Z >I_^ <G^% &-16S_ ,(9K_\ T ]3_P# .3_"C_A#-?\
M^@'J?_@')_A0!C45L_\ "&:__P! /4__  #D_P */^$,U_\ Z >I_P#@')_A
M0!C45L_\(9K_ /T ]3_\ Y/\*/\ A#-?_P"@'J?_ (!R?X4 8U%;/_"&:_\
M] /4_P#P#D_PH_X0S7_^@'J?_@')_A0!C45L_P#"&:__ - /4_\ P#D_PH_X
M0S7_ /H!ZG_X!R?X4 8U%;/_  AFO_\ 0#U/_P  Y/\ "C_A#-?_ .@'J?\
MX!R?X4 8U%;/_"&:_P#] /4__ .3_"C_ (0S7_\ H!ZG_P" <G^% &-16S_P
MAFO_ /0#U/\ \ Y/\*/^$,U__H!ZG_X!R?X4 8U%;/\ PAFO_P#0#U/_ , Y
M/\** /T7I5ZT44 .HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "D;I110 VBBB@ HHHH :W6FMUHHH 2G#I110 X=*6BB@ H
MHHH :>M.HHH *9110 4'I110 V@=:** '4444 %%%% "-TI*** %6EHHH 8_
M6FT44 .7I2T44 -/6DHHH FC^X*=110 4X=*** %IE%%  .M./2BB@!IZ4RB
MB@ I1UHHH =1110 4J]:** !J%HHH &I*** '+TI:** "BBB@!IZTE%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
4 !1110 4444 %%%% !1110!__]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>19
<FILENAME>dsgx-20220131xex99d2007.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20220131xex99d2007.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#]4CTKYF^%
MO[-7PP^(FC:UKWB3P3I.L:Q<^(M9$U[=1,TDFW4)U7)SV4 ?0"OID]*\R_9X
M_P"1$U'_ +&/7/\ TYW%=]"K4HT9RIR:=X[.W<YJD(SJ14U?1_H8O_#&?P4_
MZ)OH7_?AO_BJ/^&,_@I_T3?0O^_#?_%5[114_7L5_P _9?\ @3_S']7H_P B
M^Y'BQ_8T^"@!/_"M]"_[\-_\57BLG@3P_H_PS^*GA*RTBVMO#:_$/3K0:8BD
M0^4QT_<F,YP=S9Y[FOM)ONGZ5\EZM_R!OBO_ -E+TO\ GIU>G@L37JMJI-NS
MCNV_M(Y,12IP2Y8I;]/)GI@_8T^"A_YIOH7_ 'X;_P"*I?\ AC/X*?\ 1-]"
M_P"_#?\ Q5>SCI2UYGU[%?\ /V7_ ($_\SK^KT?Y%]R/%_\ AC/X*?\ 1-]"
M_P"_#?\ Q5<#\=_V5_A-X0^$GB;6='\!Z/I^IV5FTUO=0Q,'B<=&!W=17U-7
ME_[3?_)"/&?_ &#Y/Z5U87&XF5>"=65KKJ^YC6P]%4Y-06SZ(X35/@YX*^+7
MQVU8>,/#=AX@^Q^&M,-O]M0MY6Z6YW8P1UP/RKH_^&,_@I_T3?0O^_#?_%5?
M\'?\EX\1_P#8LZ5_Z-N:]9J:V*Q%-QC"HTK+1-]D.G1I33<HIN[Z>9XO_P ,
M9_!3_HF^A?\ ?AO_ (JC_AC/X*?]$WT+_OPW_P 57M%%<_U[%?\ /V7_ ($_
M\S7ZO1_D7W(^:8/A-X0^$WQ:U"U\(>'K+P_!=^$;Z2=+)"HE99(@I.2>F3^=
M5O@C^R=\(?$GPA\':IJ7P_T6[U"\TJVGGN)86+2.T8+,3NZD\UVWCW_DLTO_
M &)VH?\ HV*ND_9U_P"2%> O^P+:?^BQ7HU<37CAU.,VF^6[N[OXCDA2INJX
MN*LK]/0YS_AC/X*?]$WT+_OPW_Q5'_#&?P4_Z)OH7_?AO_BJ]HHKSOKV*_Y^
MR_\  G_F=?U>C_(ON1XG-^QK\%$B<CX;Z%D _P#+!O\ XJOR"\=QKI?CCQ%9
M6@^SVEOJ-Q###&3MC196"J/8  5^\ES_ *B3_=/\J_!WXE?\E&\5?]A6[_\
M1S5]QPO7JUIU?:S<K);MON?.9S3A3C#DBEOL?O,>E>9?L\?\B)J/_8QZY_Z<
M[BO33TK\_;'_ (*%:#\"-6\3^"KWPCJ6J76G>(M6+W4%U&B/YE[-(,*PR,!P
M/PKY#!X2OC:<Z>'CS.Z?RU[GO5Z]/#RC.J[+7]#] Z*X[X>?$:'QK\+](\:W
MUF?#MI?V(U%H;V93]GA(+!G?@#Y,,?3/M7RAXK_X*K>!M%\1ZA8:3X7U77M/
MMY3'#J4<\<*7 '&]48;@I.<9Y(P<#.*SP^78K%3E"C"[COMI\]BJN*HT8J52
M5D]C[?;[I^E?)>K?\@;XK_\ 92]+_GIU>L_L\?'2^^/WA67Q'_PAE_X7T1SM
MLKC4+A':\P2&9%49V#&-QX)SC.#7QC\:_P!J_2/A;XY^)_@F?0KO4KF;QC::
MR+R"X18PL2VC-'@@G/[AAGW'I7IY;@J[KSH*/O1M=7722OUL<F*Q%)4HU&]'
M?\F?I2.E+7P(W_!6OPX/N_#S56^NHQ#_ -DKJOA__P %2/AYXJ\06NFZWH>K
M>%X;AA&M],T=Q!&Q( W[<,%]P#]*YYY%F4(N3HO3T?Y,TCF6$D[*?YGVC7E_
M[3?_ "0CQG_V#Y/Z5I_&;XO:7\&?A?JWC:^C^W6-C$LBQ0RJIG+L%158Y'S%
MA@^]?"_Q5_X*<>'_ (A_#W7?#D/@?4[.74;9H%GDOHF5">Y 7FEEN78K%5(U
MJ,+Q4E=Z>0\7BJ-&+A.5FT?9G@[_ )+QXC_[%G2O_1MS7K-?*/[(/Q]LOVBO
MB)XQ\1V&D7&C0VFE:=IY@N9ED9F1YVW94#CY^GM7TUXG\2Z?X/\ #^H:WJUR
MEIIMA ]Q<3R' 1%&2:Y<=0J4J_L9KWDHJWG9&V'J0G3]I%Z7?YFI17P;<_\
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
M"0. .!TJ<SQ$,)E%+"4Y>\[7_-_B5@Z4JV.G7FM%>WY+\#M?^$0T/_H#:?\
M^ D?_P 36)XTL_#'@[PGK&NWND:>EKI]I+=2L+2+.U%+'M[5V5>/_M7>"_$7
MQ&^"6N^%O#-U96.H:MY=L]Q?NRQK"7!D'RHQ)905Z?Q9SQ7PV&3K5H4Y2LFT
MCZ.LU"G*26R/Q1GEO?B#XYDE6#?J&LWY<0VZ$CS)9,[54<XRV *_1+_@H9\/
M=-^'?[*W@C1[.TMHY=/O[.S:XBB4-)LMI%)+8R<D9YKC_P!G/_@GOXJ\&_&?
MPQK_ (DUC0+O2M,N1>/!923R2NZ L@ :-1]X+SGCWKZ?_;D^!NM_'KX6:9H.
MA7NGV5W;ZI'=M)J+NJ%1'(I *(QSEAV]:_1LPS"E+,<+3A+W8ZO?T_0^4PN%
MFL)6G)>\]#\8H(7N)DBC4O(Y"JJC))/05^Q7[%_[,.F_!3X/QW7B'3;:?Q-K
M"+>WYNH5D-NF,I",YQM!)..Y(["O#_V4O^">>I^"OBI9^)O&^I:/JECI(%Q:
MV6GO+)YEQGY"^^-1M7EN,Y(';-?>/CRWOKKP7K<&ER)#J,EG*EO)(Y15D*D*
M20"0,]P#7#Q%FJKRC@Z#TT;?Y+]3IRK!>R3Q%5:]#\*OC;XCB\9_&/Q?JMK'
M EK=:I/Y"VZ;$,8<JA [950?QK]3;'X#VLG[#<?AFTTJT_M>X\,&1)(8%:1I
MI(S+]YAG.6]:^1?#W_!-KQ\?$NG3ZEXB\.-:_:D><P3W!D*[@6QNAP3UZU^K
M=O:QV]K';JH\I$"!<<8 P*?$&/A3CAZ>'=^5WZ]+6%E>&E)U9U5OI]^Y_.VZ
MM#*58%74X((P0:_6W]D;]HWX4>/_ (7^'M'U>\T'1_%EA;)9W%EJBPPO,4&U
M7C9P ^X $X.0<Y'<\A^TY_P39L?'VO:CXK\!:M:>'KZY)GN]+O8V%J[GEG1D
M!*$]2-I!/IFO@?Q1\"-?\(W<=O=W>G2.XR##+(P_6,5[E5X/B+#1Y9N+7X/M
MV9YT%7RJJ[Q33_$_4']K?XM?#KP3\$?%46EZIX9?Q'=63V]E:VMQ;FYW/\N]
M%7+';G/2ORL^"7@Y_B!\6_"?AY$#_;]1AA()(&W<,Y(Z#%=WX._9%\7^-KG3
MX;/4M$A-[((D:>>8;23CG$1K[:_91_X)ZZO\$/B18^,O$OB73=1N;)9%AL--
MBE*[F7 <R/MZ9Z;/QKG@\-D.#J051RD[VT>]K(TDJV95X-PM%>9]BV_@C0+>
K".)=%T_:BA1FUC/ X_NU-_PB>BC_ )A%A_X"Q_X5K45^4\\NY]KRKL?_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>20
<FILENAME>dsgx-20220131xex99d2009.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20220131xex99d2009.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>XML
<SEQUENCE>21
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647957069672">
<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">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jan. 31, 2022 </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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">40-F<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="top.Show.showAR( this, 'defref_dei_DocumentRegistrationStatement', window );">Document Registration Statement</a></td>
<td class="text">false<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="top.Show.showAR( this, 'defref_dei_DocumentAnnualReport', window );">Document Annual Report</a></td>
<td class="text">true<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="top.Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Jan. 31,  2022<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="top.Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">000-29970<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="top.Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">DESCARTES SYSTEMS GROUP&#160;INC<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="top.Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">Z4<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="top.Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">120 Randall Drive<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="top.Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Waterloo<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="top.Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">ON<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="top.Show.showAR( this, 'defref_dei_EntityAddressCountry', window );">Entity Address, Country</a></td>
<td class="text">CA<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="top.Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">N2V 1C6<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="top.Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">519<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="top.Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">746-8110<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="top.Show.showAR( this, 'defref_dei_AnnualInformationForm', window );">Annual Information Form</a></td>
<td class="text">true<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="top.Show.showAR( this, 'defref_dei_AuditedAnnualFinancialStatements', window );">Audited Annual Financial Statements</a></td>
<td class="text">true<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="top.Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding (in shares)</a></td>
<td class="nump">84,756,210<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="top.Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<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="top.Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<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="top.Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<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="top.Show.showAR( this, 'defref_dei_AuditorName', window );">Auditor Name</a></td>
<td class="text">KPMG LLP<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="top.Show.showAR( this, 'defref_dei_AuditorFirmId', window );">Auditor Firm ID</a></td>
<td class="text">85<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="top.Show.showAR( this, 'defref_dei_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">Toronto, ON, Canada<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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2022<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="top.Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<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="top.Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityAddressesAddressTypeAxis=dei_BusinessContactMember', window );">Business Contact [Member]</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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_ContactPersonnelName', window );">Contact Personnel Name</a></td>
<td class="text">Descartes Systems (USA) LLC<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="top.Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">Powers Ferry Business Park<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="top.Show.showAR( this, 'defref_dei_EntityAddressAddressLine2', window );">Entity Address, Address Line Two</a></td>
<td class="text">2030 Powers Ferry Road SE<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="top.Show.showAR( this, 'defref_dei_EntityAddressAddressLine3', window );">Entity Address, Address Line Three</a></td>
<td class="text">Suite&#160;350<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="top.Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Atlanta<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="top.Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">GA<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="top.Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">30339-5066<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="top.Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">678<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="top.Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">247-0400<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_CommonStockMember', window );">Common Stock [Member]</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="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Shares, no par value<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="top.Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">DSGX<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="top.Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=dsgx_RightsToPurchaseCommonSharesMember', window );">Rights to purchase Common Shares [Member]</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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Rights to purchase Common Shares, no par value<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="top.Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">DSGX<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="top.Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_AnnualInformationForm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag with value true on a form if it is an annual report containing an annual information form.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_AnnualInformationForm</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_AuditedAnnualFinancialStatements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag with value true on a form if it is an annual report containing audited financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_AuditedAnnualFinancialStatements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorFirmId">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>PCAOB issued Audit Firm Identifier</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorFirmId</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:nonemptySequenceNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorLocation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorLocation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_ContactPersonnelName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of contact personnel</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ContactPersonnelName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentAnnualReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an annual report.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentAnnualReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DocumentRegistrationStatement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a registration statement.</p></div>
<a href="javascript:void(0);" onclick="top.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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DocumentRegistrationStatement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Address Line 2 such as Street or Suite number</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_EntityAddressAddressLine2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine3">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Address Line 3 such as an Office Park</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_EntityAddressAddressLine3</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCountry">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>ISO 3166-1 alpha-2 country code.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_EntityAddressCountry</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:countryCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressesAddressTypeAxis=dei_BusinessContactMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressesAddressTypeAxis=dei_BusinessContactMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=us-gaap_CommonStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=dsgx_RightsToPurchaseCommonSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=dsgx_RightsToPurchaseCommonSharesMember</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>22
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956868536">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash</a></td>
<td class="nump">$ 213,437<span></span>
</td>
<td class="nump">$ 133,661<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Trade (Note 5)</a></td>
<td class="nump">41,705<span></span>
</td>
<td class="nump">37,206<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="top.Show.showAR( this, 'defref_us-gaap_OtherReceivablesNetCurrent', window );">Other (Note 6)</a></td>
<td class="nump">14,075<span></span>
</td>
<td class="nump">14,830<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="top.Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other</a></td>
<td class="nump">21,974<span></span>
</td>
<td class="nump">16,939<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="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventory (Note 7)</a></td>
<td class="nump">868<span></span>
</td>
<td class="nump">429<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Assets, Current, Total</a></td>
<td class="nump">292,059<span></span>
</td>
<td class="nump">203,065<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="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">OTHER LONG-TERM ASSETS (Note 19)</a></td>
<td class="nump">18,652<span></span>
</td>
<td class="nump">15,550<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">PROPERTY AND EQUIPMENT, NET (Note 8)</a></td>
<td class="nump">10,817<span></span>
</td>
<td class="nump">12,089<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">RIGHT-OF-USE ASSETS (Note 13)</a></td>
<td class="nump">10,571<span></span>
</td>
<td class="nump">12,165<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="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">DEFERRED INCOME TAXES</a></td>
<td class="nump">14,962<span></span>
</td>
<td class="nump">15,216<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="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">INTANGIBLE ASSETS, NET (Note 9)</a></td>
<td class="nump">229,609<span></span>
</td>
<td class="nump">239,992<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">GOODWILL (Note 10)</a></td>
<td class="nump">608,761<span></span>
</td>
<td class="nump">565,177<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Assets, Total</a></td>
<td class="nump">1,185,431<span></span>
</td>
<td class="nump">1,063,254<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">10,566<span></span>
</td>
<td class="nump">7,955<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="top.Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued liabilities (Note 11)</a></td>
<td class="nump">56,442<span></span>
</td>
<td class="nump">38,879<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Lease obligations (Note 13)</a></td>
<td class="nump">4,029<span></span>
</td>
<td class="nump">4,168<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="top.Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxesCurrent', window );">Income taxes payable</a></td>
<td class="nump">5,616<span></span>
</td>
<td class="nump">3,383<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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue (Note 19)</a></td>
<td class="nump">56,780<span></span>
</td>
<td class="nump">49,878<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Liabilities, Current, Total</a></td>
<td class="nump">133,433<span></span>
</td>
<td class="nump">104,263<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">LEASE OBLIGATIONS (Note 13)</a></td>
<td class="nump">7,382<span></span>
</td>
<td class="nump">8,895<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="top.Show.showAR( this, 'defref_us-gaap_DeferredRevenueNoncurrent', window );">DEFERRED REVENUE (Note 19)</a></td>
<td class="nump">1,920<span></span>
</td>
<td class="nump">1,413<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="top.Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxesNoncurrent', window );">INCOME TAXES PAYABLE</a></td>
<td class="nump">7,354<span></span>
</td>
<td class="nump">8,230<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="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">DEFERRED INCOME TAXES</a></td>
<td class="nump">35,523<span></span>
</td>
<td class="nump">29,385<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Liabilities, Total</a></td>
<td class="nump">185,612<span></span>
</td>
<td class="nump">152,186<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common shares - unlimited shares authorized; Shares issued and outstanding totaled 84,756,210 at January 31, 2022 (January 31, 2021 - 84,494,658)</a></td>
<td class="nump">536,297<span></span>
</td>
<td class="nump">531,825<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="top.Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">473,303<span></span>
</td>
<td class="nump">464,102<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="top.Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss</a></td>
<td class="num">(12,393)<span></span>
</td>
<td class="num">(1,189)<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="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings (accumulated deficit)</a></td>
<td class="nump">2,612<span></span>
</td>
<td class="num">(83,670)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Stockholders' Equity Attributable to Parent, Ending Balance</a></td>
<td class="nump">999,819<span></span>
</td>
<td class="nump">911,068<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Liabilities and Equity, Total</a></td>
<td class="nump">$ 1,185,431<span></span>
</td>
<td class="nump">$ 1,063,254<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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 current.</p></div>
<a href="javascript:void(0);" onclick="top.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 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130532-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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_DeferredRevenueNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>23
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647959323064">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets (Parentheticals) - shares<br></strong></div></th>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common shares, shares issued (in shares)</a></td>
<td class="nump">84,756,210<span></span>
</td>
<td class="nump">84,494,658<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="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common shares, shares outstanding (in shares)</a></td>
<td class="nump">84,756,210<span></span>
</td>
<td class="nump">84,494,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647957085480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Operations - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">REVENUES</a></td>
<td class="nump">$ 424,690<span></span>
</td>
<td class="nump">$ 348,664<span></span>
</td>
<td class="nump">$ 325,791<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="top.Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">COST OF REVENUES</a></td>
<td class="nump">101,810<span></span>
</td>
<td class="nump">89,910<span></span>
</td>
<td class="nump">85,721<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">GROSS MARGIN</a></td>
<td class="nump">322,880<span></span>
</td>
<td class="nump">258,754<span></span>
</td>
<td class="nump">240,070<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SellingAndMarketingExpense', window );">Sales and marketing</a></td>
<td class="nump">46,895<span></span>
</td>
<td class="nump">38,785<span></span>
</td>
<td class="nump">40,389<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="top.Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development</a></td>
<td class="nump">62,570<span></span>
</td>
<td class="nump">54,066<span></span>
</td>
<td class="nump">53,513<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="top.Show.showAR( this, 'defref_us-gaap_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">44,454<span></span>
</td>
<td class="nump">36,267<span></span>
</td>
<td class="nump">34,628<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="top.Show.showAR( this, 'defref_us-gaap_OtherNonoperatingExpense', window );">Other charges (Note 20)</a></td>
<td class="nump">6,428<span></span>
</td>
<td class="nump">2,335<span></span>
</td>
<td class="nump">3,797<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="top.Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">59,099<span></span>
</td>
<td class="nump">55,905<span></span>
</td>
<td class="nump">55,485<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Operating Expenses, Total</a></td>
<td class="nump">219,446<span></span>
</td>
<td class="nump">187,358<span></span>
</td>
<td class="nump">187,812<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="top.Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">INCOME FROM OPERATIONS</a></td>
<td class="nump">103,434<span></span>
</td>
<td class="nump">71,396<span></span>
</td>
<td class="nump">52,258<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="top.Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">INTEREST EXPENSE</a></td>
<td class="num">(1,123)<span></span>
</td>
<td class="num">(1,186)<span></span>
</td>
<td class="num">(4,416)<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="top.Show.showAR( this, 'defref_us-gaap_InvestmentIncomeNet', window );">INVESTMENT INCOME</a></td>
<td class="nump">299<span></span>
</td>
<td class="nump">159<span></span>
</td>
<td class="nump">193<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">INCOME BEFORE INCOME TAXES</a></td>
<td class="nump">102,610<span></span>
</td>
<td class="nump">70,369<span></span>
</td>
<td class="nump">48,035<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>INCOME TAX EXPENSE (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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current</a></td>
<td class="nump">14,814<span></span>
</td>
<td class="nump">3,746<span></span>
</td>
<td class="nump">5,295<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="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred</a></td>
<td class="nump">1,514<span></span>
</td>
<td class="nump">14,523<span></span>
</td>
<td class="nump">5,743<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income Tax Expense (Benefit), Total</a></td>
<td class="nump">16,328<span></span>
</td>
<td class="nump">18,269<span></span>
</td>
<td class="nump">11,038<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">NET INCOME</a></td>
<td class="nump">$ 86,282<span></span>
</td>
<td class="nump">$ 52,100<span></span>
</td>
<td class="nump">$ 36,997<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>EARNINGS PER SHARE (Note 16)</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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 1.02<span></span>
</td>
<td class="nump">$ 0.62<span></span>
</td>
<td class="nump">$ 0.45<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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 1.00<span></span>
</td>
<td class="nump">$ 0.61<span></span>
</td>
<td class="nump">$ 0.45<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="nump">84,591<span></span>
</td>
<td class="nump">84,360<span></span>
</td>
<td class="nump">81,659<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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="nump">86,200<span></span>
</td>
<td class="nump">85,756<span></span>
</td>
<td class="nump">82,867<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_OtherNonoperatingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>25
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647962008424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Comprehensive Income - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income</a></td>
<td class="nump">$ 86,282<span></span>
</td>
<td class="nump">$ 52,100<span></span>
</td>
<td class="nump">$ 36,997<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustment, net of income tax (recovery) expense of ($348) for the year ended January 31, 2022 (January 31, 2021 - $290; January 31, 2020 - ($132))</a></td>
<td class="num">(11,204)<span></span>
</td>
<td class="nump">24,755<span></span>
</td>
<td class="num">(743)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTax', window );">Total other comprehensive income (loss)</a></td>
<td class="num">(11,204)<span></span>
</td>
<td class="nump">24,755<span></span>
</td>
<td class="num">(743)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">COMPREHENSIVE INCOME</a></td>
<td class="nump">$ 75,078<span></span>
</td>
<td class="nump">$ 76,855<span></span>
</td>
<td class="nump">$ 36,254<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647963058264">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Comprehensive Income (Parentheticals) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax', window );">Foreign currency translation adjustment, income tax expense (recovery)</a></td>
<td class="nump">$ 348<span></span>
</td>
<td class="nump">$ 290<span></span>
</td>
<td class="nump">$ 132<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956813160">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Statements of Shareholders' Equity - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Common Stock [Member]</div></th>
<th class="th"><div>Additional Paid-in Capital [Member]</div></th>
<th class="th"><div>AOCI Attributable to Parent [Member]</div></th>
<th class="th"><div>Retained Earnings [Member]</div></th>
<th class="th"><div>Total</div></th>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Jan. 31, 2019</a></td>
<td class="nump">$ 276,753<span></span>
</td>
<td class="nump">$ 454,722<span></span>
</td>
<td class="num">$ (25,201)<span></span>
</td>
<td class="num">$ (172,767)<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="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Stock options and share units exercised</a></td>
<td class="nump">1,788<span></span>
</td>
<td class="num">(362)<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="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueNewIssues', window );">Issuance of common shares, net of issuance costs (Note 15)</a></td>
<td class="nump">236,568<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueAcquisitions', window );">Acquisitions (Note 3)</a></td>
<td class="nump">9,045<span></span>
</td>
<td class="text">&#160;<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="top.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">4,909<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="top.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">(743)<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="top.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">36,997<span></span>
</td>
<td class="nump">$ 36,997<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Jan. 31, 2020</a></td>
<td class="nump">524,154<span></span>
</td>
<td class="nump">459,269<span></span>
</td>
<td class="num">(25,944)<span></span>
</td>
<td class="num">(135,770)<span></span>
</td>
<td class="nump">821,709<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="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Stock options and share units exercised</a></td>
<td class="nump">7,671<span></span>
</td>
<td class="num">(1,480)<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="top.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,313<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="top.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">24,755<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="top.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">52,100<span></span>
</td>
<td class="nump">52,100<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance 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="nump">911,068<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="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Stock options and share units exercised</a></td>
<td class="nump">4,472<span></span>
</td>
<td class="num">(1,816)<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="top.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">11,017<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="top.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">(11,204)<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="top.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">86,282<span></span>
</td>
<td class="nump">86,282<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance 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>
</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_StockIssuedDuringPeriodValueAcquisitions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued pursuant to acquisitions during the period.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueAcquisitions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_StockIssuedDuringPeriodValueNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.</p></div>
<a href="javascript:void(0);" onclick="top.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 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 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 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 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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueNewIssues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>28
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956851240">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Cash Flows - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 86,282<span></span>
</td>
<td class="nump">$ 52,100<span></span>
</td>
<td class="nump">$ 36,997<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation</a></td>
<td class="nump">5,129<span></span>
</td>
<td class="nump">5,757<span></span>
</td>
<td class="nump">6,037<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="top.Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">59,099<span></span>
</td>
<td class="nump">55,905<span></span>
</td>
<td class="nump">55,485<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation expense (Note 17)</a></td>
<td class="nump">11,017<span></span>
</td>
<td class="nump">6,313<span></span>
</td>
<td class="nump">4,909<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="top.Show.showAR( this, 'defref_us-gaap_OtherNoncashIncomeExpense', window );">Other non-cash operating activities</a></td>
<td class="nump">308<span></span>
</td>
<td class="nump">207<span></span>
</td>
<td class="nump">337<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="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense</a></td>
<td class="nump">1,514<span></span>
</td>
<td class="nump">14,523<span></span>
</td>
<td class="nump">5,743<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapital', window );">Changes in operating assets and liabilities (Note 21)</a></td>
<td class="nump">12,789<span></span>
</td>
<td class="num">(3,575)<span></span>
</td>
<td class="num">(5,256)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Cash provided by operating activities</a></td>
<td class="nump">176,138<span></span>
</td>
<td class="nump">131,230<span></span>
</td>
<td class="nump">104,252<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Additions to property and equipment</a></td>
<td class="num">(4,829)<span></span>
</td>
<td class="num">(3,759)<span></span>
</td>
<td class="num">(4,900)<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition of subsidiaries, net of cash acquired (Note 3)</a></td>
<td class="num">(90,278)<span></span>
</td>
<td class="num">(48,403)<span></span>
</td>
<td class="num">(292,053)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Cash used in investing activities</a></td>
<td class="num">(95,107)<span></span>
</td>
<td class="num">(52,162)<span></span>
</td>
<td class="num">(296,953)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromLinesOfCredit', window );">Proceeds from borrowing on the credit facility</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,196<span></span>
</td>
<td class="nump">297,015<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="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfDebt', window );">Credit facility and other debt repayments</a></td>
<td class="num">(1,068)<span></span>
</td>
<td class="num">(10,793)<span></span>
</td>
<td class="num">(322,634)<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsOfDebtIssuanceCosts', window );">Payment of debt issuance costs</a></td>
<td class="num">(72)<span></span>
</td>
<td class="num">(40)<span></span>
</td>
<td class="num">(1,400)<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="top.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">2,656<span></span>
</td>
<td class="nump">6,194<span></span>
</td>
<td class="nump">237,973<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="top.Show.showAR( this, 'defref_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities', window );">Payment of contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(785)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Cash provided by financing activities</a></td>
<td class="nump">1,516<span></span>
</td>
<td class="nump">5,557<span></span>
</td>
<td class="nump">210,169<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="top.Show.showAR( this, 'defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Effect of foreign exchange rate changes on cash</a></td>
<td class="num">(2,771)<span></span>
</td>
<td class="nump">4,633<span></span>
</td>
<td class="num">(363)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Increase in cash</a></td>
<td class="nump">79,776<span></span>
</td>
<td class="nump">89,258<span></span>
</td>
<td class="nump">17,105<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="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash, beginning of year</a></td>
<td class="nump">133,661<span></span>
</td>
<td class="nump">44,403<span></span>
</td>
<td class="nump">27,298<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="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash, end of year</a></td>
<td class="nump">213,437<span></span>
</td>
<td class="nump">133,661<span></span>
</td>
<td class="nump">44,403<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Cash paid during the year for interest</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">89<span></span>
</td>
<td class="nump">3,516<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Cash paid during the year for income taxes</a></td>
<td class="nump">$ 12,575<span></span>
</td>
<td class="nump">$ 8,214<span></span>
</td>
<td class="nump">$ 8,946<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_InterestPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4297-108586<br><br>Reference 2: 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 17<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3367-108585<br><br>Reference 3: 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 25<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3536-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_ProceedsFromLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.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 (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3255-108585<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(f))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>29
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647962681672">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock', window );">Description of the Business</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;1&#160;- Description of the Business</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958285064">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_SignificantAccountingPoliciesTextBlock', window );">Basis of Presentation</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;2&#160;&#8211;Basis of Presentation</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The accompanying 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 the US Securities and Exchange Commission (&#8220;SEC&#8221;) for the preparation of consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The world continues to experience a global pandemic related to the spread of the COVID-19 virus (the &#8220;Pandemic&#8221;). 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our fiscal&#160;year commences on February&#160;1<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of each&#160;year and ends on January&#160;31<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of the following&#160;year. Our fiscal&#160;year, which ends on January&#160;31, 2022, is referred to as the &#8220;current fiscal&#160;year&#8221;, &#8220;fiscal 2022&#8221;, &#8220;2022&#8221; or using similar words. Our previous fiscal&#160;year, which ended on January&#160;31, 2021, is referred to as the &#8220;previous fiscal&#160;year&#8221;, &#8220;fiscal 2021&#8221;, &#8220;2021&#8221; or using similar words. Other fiscal&#160;years are referenced by the applicable&#160;year during which the fiscal&#160;year ends. For example, &#8220;2023&#8221; refers to the annual period ending January&#160;31, 2023 and the &#8220;fourth quarter of 2023&#8221; refers to the quarter ending January&#160;31, 2023.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Basis of consolidation</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Foreign currency translation</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The US dollar is the presentation currency of the Company. Assets and liabilities of our subsidiaries are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses are translated into US dollars using daily exchange rates. Translation adjustments resulting from this process are accumulated in other comprehensive income (loss) as a separate component of shareholders&#8217; equity. On substantial liquidation of a foreign operation, the component of accumulated other comprehensive income relating to that particular foreign operation is recognized in the consolidated statements of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The functional currency of each of our entities is generally the local currency in which they operate. Transactions incurred in currencies other than the local currency of an entity are converted to the local currency at the transaction date. Monetary assets and liabilities denominated in foreign currencies are re-measured into the local currency at the exchange rate in effect at the balance sheet date. All foreign currency re-measurement gains and losses are included in net income. For the&#160;year ended January&#160;31, 2022, foreign currency re-measurement loss of $0.3 million was included in net income (January&#160;31, 2021&#160;&#8211; loss of $0.8 million; January&#160;31, 2020&#160;&#8211; loss of $0.6 million).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Use of estimates</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Preparing financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts that are reported in the consolidated financial statements and accompanying note disclosures. Although these estimates and assumptions are based on management&#8217;s best knowledge of current events, actual results may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Estimates and assumptions are used when accounting for items such as allocations of the purchase price and the fair value of net assets acquired in business combination transactions, useful lives of intangible assets and property and equipment, revenue related estimates including determining the nature and timing of satisfaction of performance obligations, variable consideration, and other obligations such as product returns and refunds, allowance for doubtful accounts, collectability of other receivables, provisions for excess or obsolete inventory, determining the Company&#8217;s incremental borrowing rate, restructuring accruals, fair value of stock-based compensation, assumptions embodied in the valuation of assets for impairment assessment, accounting for income taxes, valuation allowances for deferred income tax assets, realization of investment tax credits, uncertain tax positions and recognition of contingencies. Significant assumptions and judgment are used when determining the standalone selling price (&#8220;SSP&#8221;) of performance obligations in contracts with customers.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Cash</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Cash included highly liquid short-term deposits with original maturities of three&#160;months or less.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Financial instruments</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Fair value of financial instruments</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The carrying amounts of the Company&#8217;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Derivative instruments</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 &#8220;Derivatives and Hedging&#8221; (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments&#8217; fair values are recognized in earnings. The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Foreign exchange risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Interest rate risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Depending on the type of advance under the available facilities, interest on such borrowings will be charged based on either i) Canada or US prime rate; or ii) Banker&#8217;s Acceptance (BA); or iii) US dollar London Interbank Offer Rate (LIBOR); or iv) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Credit risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to credit risk through our invested cash and accounts receivable. We hold our cash with reputable financial institutions. The lack of concentration of accounts receivable from a single customer and the dispersion of customers among industries and geographical locations mitigate our credit risk.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Equity risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. 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 Company does not hold derivatives for speculative purposes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Provision for Credit Losses</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to credit losses primarily through our trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Inventory</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Finished goods inventories are stated at the lower of cost and net realizable value. The cost of finished goods is determined on the basis of average cost of units.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Impairment of long-lived assets</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal&#160;years presented.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Goodwill and intangible assets</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We test for impairment of goodwill at least annually on October&#160;31<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of each&#160;year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our reporting unit&#8217;s carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit. We completed the qualitative assessment during our third quarter of 2022 and concluded that it was more likely than not that the fair value of the goodwill was greater than the carrying value. As a result, no impairment of goodwill was recorded in fiscal 2022 (no impairments were recorded for fiscal 2021 or fiscal 2020).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset 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 asset or asset groups is determined by discounting the expected related future cash flows.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Amortization of our intangible assets is generally recorded at the following rates:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:47.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:'Arial','Helvetica','sans-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.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_X5IRyacMyEe63uLdWdhnyg;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twenty years</p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technologies</p></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_H4Aki753xUGuQreNk3KAuw;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> to twelve years</p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_R3HFVPmLxECS61adSjqHBQ;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to fifteen years</p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_eEcpTStYuEqXnki-TnMzpQ;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twelve years</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Property and equipment</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Property and equipment is recorded at cost.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Effective February&#160;1, 2020, we changed our accounting method for property&#160;&amp; equipment from the declining balance method of depreciation to the straight-line method of depreciation to better reflect the consumption of the assets&#8217; economic benefits. Our change in the method of depreciation is considered a change in accounting estimate effected by a change in accounting principle and has been applied prospectively. The change in the method of depreciation did not have a material impact on our results of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Depreciation of our property and equipment is generally recorded at the following rates:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:80%;"><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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:47.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:'Arial','Helvetica','sans-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:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Computer equipment and software</p></td><td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over 1 to 13 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over 3 to 14 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Leasehold improvements</p></td><td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over lesser of useful life or term of lease</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Equipment installed with customers</p></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over 3 years</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Leases</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">At the inception of a contract we assess whether a contract is, or contains, a lease based on whether the contract conveys the right to control the use of an identified asset for a period of time in exchange for consideration. We have building lease agreements with lease and non-lease components, which are accounted for separately. For computer equipment and vehicle leases, we have elected to account for the lease and non-lease components as a single lease component.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We recognize a right-of-use (&#8220;ROU&#8221;) asset and a lease liability at the lease commencement date. The ROU asset is initially measured based on the initial amount of the lease liability adjusted for any lease payments made at or before the commencement date, plus any initial direct costs incurred and less any lease incentives received. The assets are depreciated to the earlier of the end of the useful life of the ROU asset or the lease term using the straight-line method as this most closely reflects the expected pattern of consumption of the future economic benefits. The lease term includes periods covered by an option to extend if the Company is reasonably certain to exercise that option.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The lease liability is initially measured at the present value of the future lease payments at the commencement date, discounted using the interest rate implicit in the lease or, if that rate cannot be readily determined, the Company&#8217;s incremental borrowing rate. As most of our leases do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The lease liability is measured at amortized cost using the effective interest method. It is remeasured when there is a change in future lease payments arising from a change in an index or rate, if there is a change in the Company&#8217;s estimate of the amount expected to be payable under a residual value guarantee, or if the Company changes its assessment of whether it will exercise a purchase, extension or termination option. When the lease liability is remeasured, a corresponding </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">adjustment is made to the carrying amount of the ROU asset, or is recorded in profit or loss if the carrying amount of the ROU asset has been reduced to zero.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12&#160;months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Revenue recognition</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the SSP. SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. In addition to these general policies, the specific revenue recognition policies for each major category of revenue are included below.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">License</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Revenues for distinct licenses for on-premise or hosted software are derived from perpetual licenses granted to our customers for the right to use our software products. License revenues are billed on the effective date of a contract and revenue is recognized at the point in time when the customer is provided control of the respective software.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Services</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Services, which allow customers to access hosted software over a contract term without taking possession of the software, is provided on a subscription and/or transactional fee basis. Revenues from hosted software subscriptions and maintenance are typically billed annually in advance and revenue is recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Transaction fees are typically billed and recognized as revenue on a&#160;monthly basis based on the customer usage for that period.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Professional Services&#160;&amp; Other</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Professional services are comprised of consulting, implementation and training services related to our services and products. These services are generally considered to be separate performance obligations as they provide incremental benefit to customers beyond providing access to the software. Professional services are typically billed on a time and materials basis and revenue is recognized over time as the services are performed. For professional services contracts billed on a fixed price basis, revenue is recognized over time based on the proportion of services performed. Revenue related to customer reimbursement of travel related expenses is recognized on a gross basis as incurred. Other revenues include hardware revenue and is generally billed, and revenue is recognized, when control of the product has transferred under the terms of an enforceable contract.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of its promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Costs to obtain a contract with a customer</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between <span style="-sec-ix-hidden:Hidden_HWyYO8ERp0Wr4ZxBm81I0w;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> to six&#160;years, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one&#160;year or less.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Contract assets and liabilities</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s)&#160;and relates primarily to prepaid maintenance or other recurring services. Deferred revenues are relieved as revenue is recognized. Contract assets and deferred revenues are reported on a contract-by-contract basis at the end of each reporting period.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Research and development costs</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Stock-based compensation plans</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Stock Options</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Employee stock options generally vest over a five-year period starting from the grant date and expire seven&#160;years from the grant date. Non-employee directors&#8217; and officers&#8217; stock options generally have quarterly vesting over a <span style="-sec-ix-hidden:Hidden_MlLWcOJvI0Cji82e8NzJRw;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to five-year period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The fair value of employee stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Performance&#160;&amp; Restricted Share Units</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (&#8220;PSUs&#8221;) and restricted share units (&#8220;RSUs&#8221;).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">PSUs vest at the end of a three-year performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&#8220;TSR&#8221;) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading&#160;days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire ten&#160;years from the grant date. New shares are issued from treasury upon the redemption of a PSU.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">PSUs are measured at fair value estimated using a Monte Carlo Simulation approach. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">RSUs vest annually over a three-year period starting from the grant date and expire ten&#160;years from the grant date. We issue new shares from treasury upon the redemption of an RSU.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Deferred Share Unit Plan</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our board of directors adopted a deferred share unit plan effective as of June&#160;28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (&#8220;DSUs&#8221;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading&#160;days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none or a&#160;percentage of the eligible director&#8217;s fees which would otherwise be payable in cash. If a director has invested less than the minimum amount of equity in Descartes, as prescribed from time to time by the board of directors, then the director must take at least 50% of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our board of directors adopted a cash-settled restricted share unit plan effective as of May&#160;23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&#8220;CRSUs&#8221;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading&#160;days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over <span style="-sec-ix-hidden:Hidden_-ChMqGiq8EGz7VHoOSALbg;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to five-year periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30&#160;days following a vesting date and in any event prior to December&#160;31<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of the calendar&#160;year in which a vesting date occurs. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Business combinations</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We apply the provisions of ASC Topic 805, &#8220;Business Combinations&#8221; (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one&#160;year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, &#8220;Exit or Disposal Cost Obligations&#8221; (Topic 420) and are accounted for separately from the business combination.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Income taxes</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We use the liability method of income tax allocation to account for income taxes. Deferred tax assets and liabilities arise from temporary differences between the tax bases of assets and liabilities and their reported amounts in the consolidated financial statements that will result in taxable or deductible amounts in future&#160;years. These temporary differences are measured using enacted tax rates. A valuation allowance is recorded to reduce deferred tax assets to the extent that we consider it is more likely than not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes.&#160;The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Earnings per share</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Basic earnings per share is calculated by dividing net income by the weighted average number of common shares outstanding during the period. Diluted earnings per common share is calculated by dividing net income by the sum of the weighted average number of common shares outstanding and all additional common shares that would have been </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">outstanding if potentially dilutive common shares had been issued during the period. The treasury stock method is used to compute the dilutive effect of stock-based compensation.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Recently adopted accounting pronouncements</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In February&#160;2016, the FASB issued Accounting Standards Update 2016-02, &#8220;Leases (Topic 842)&#8221; (&#8220;ASU 2016-02&#8221;) and issued subsequent amendments to the initial guidance during 2018, collectively referred to as &#8220;ASC 842&#8221;. These updates supersede the lease guidance in ASC Topic 840, &#8220;Leases&#8221; and require the recognition of lease assets and lease liabilities by lessees for most leases previously classified as operating leases under ASC Topic 840. Leases will continue to be classified as either operating or finance. ASC 842 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2018, which was our fiscal&#160;year that began on February&#160;1, 2019 (fiscal 2020). The Company adopted ASC 842 as of February&#160;1, 2019 using the cumulative effect method.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As permitted under ASC 842, we have elected to apply the practical expedient to carry forward our current assessments of whether a contract contains a lease, lease classification, remaining lease terms and amounts capitalized as initial direct costs. We have also elected to apply the practical expedient not to recognize right-of-use (ROU) assets and lease liabilities for short-term leases that have a lease term of 12&#160;months or less. The adoption of ASC 842 resulted in an increase to ROU assets and lease liabilities of $10.4 million as of February&#160;1, 2019. The adoption of ASC 842 did not have a material impact on either our consolidated statement of operations or our consolidated statement of cash flows.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In June&#160;2016, the FASB issued Accounting Standards Update 2016-13, &#8220;Financial Instruments&#160;&#8211; Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments&#8221; (&#8220;ASU 2016-13&#8221;) and issued subsequent amendments to the initial guidance during the 2019 calendar&#160;year, collectively referred to as &#8220;ASC 326&#8221;. ASC 326 requires the measurement and recognition of expected credit losses for financial assets held at amortized cost. ASC 326 replaces the existing incurred loss impairment model with an expected loss model which requires the use of forward-looking information to calculate credit loss estimates. ASC 326 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The Company is exposed to credit losses primarily through its trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions. The Company adopted ASC 326 as of February&#160;1, 2020 using the cumulative effect method and therefore the comparative information has not been restated. The adoption of ASC 326 did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In January&#160;2017, the FASB issued Accounting Standards Update 2017-04, &#8220;Intangibles&#160;&#8211; Goodwill and Other (Topic 350): Simplifying the Test for Goodwill Impairment&#8221; (&#8220;ASU 2017-04&#8221;). ASU 2017-04 simplifies how an entity is required to test goodwill for impairment. ASU 2017-04 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In August&#160;2018, the FASB issued Accounting Standards Update 2018-15, &#8220;Intangibles&#160;&#8211; Goodwill and Other&#160;&#8211; Internal-Use Software (Subtopic 350-40): Customer&#8217;s Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract&#8221; (&#8220;ASU 2018-15&#8221;). ASU 2018-15 aligns the requirements for capitalizing implementation costs incurred in a hosting arrangement that is a service contract with the requirements for capitalizing implementation costs incurred to develop or obtain internal-use software. ASU 2018-15 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">In December&#160;2019, the FASB issued Accounting Standards Update 2019-12, &#8220;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes&#8221; (&#8220;ASU 2019-12&#8221;). ASU 2019-12 simplifies how an entity accounts for income taxes. ASU 2019-12 is effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2020, </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">which is our fiscal&#160;year that began on February&#160;1, 2021 (fiscal 2022). The Company adopted this guidance in the first quarter of fiscal 2022. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Recently issued accounting pronouncements</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>31
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958400200">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationDisclosureTextBlock', window );">Acquisitions</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;3&#160;&#8211; Acquisitions</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2022 Acquisitions</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 $35.9 million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $0.6 million with a fair value of $0.5 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $0.1 million. The purchase price was finalized in the three&#160;month period ended January&#160;31, 2022 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 $25.2 million (EUR 20.7 million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $0.7 million with a fair value of $0.7 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 May&#160;7, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 $29.2 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to $10.0 million in cash is payable if certain revenue performance targets are met by GreenMile in the two&#160;years following the acquisition. The fair value of the contingent consideration was valued at $3.3 million at the acquisition date. The gross contractual amount of trade receivables acquired was $1.1 million with a fair value of $1.0 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $0.1 million. 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 July&#160;8, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">For the businesses acquired during fiscal 2022, we incurred acquisition-related costs of $0.9 million for the&#160;year ended January&#160;31, 2022, respectively. The acquisition-related costs were primarily for advisory services and are included in other charges in our consolidated statements of operations. For the&#160;year ended January&#160;31, 2022, we have recognized aggregate revenues of $12.0 million, respectively, and a net loss of $1.3 million from QuestaWeb, Portrix and GreenMile since the date of acquisition in our consolidated statements of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;">The final purchase price allocation for QuestaWeb and the preliminary purchase price allocations for Portrix and GreenMile, which have not been finalized, are as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:9pt;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:56.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:7.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:7.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:'Arial','Helvetica','sans-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:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">QuestaWeb</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Portrix</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Green&#160;Mile</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Purchase price consideration:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash, less cash acquired related to QuestaWeb ($2,097), Portrix ($200) and GreenMile ($1,552)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35,860</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,188</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 29,230</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 90,278</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,339</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,339</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net working capital adjustments payable / (receivable)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (54)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (308)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (345)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35,877</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,134</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 32,261</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 93,272</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Allocated to:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current assets, excluding cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 714</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 810</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,710</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 78</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 89</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 167</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 374</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 497</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Other long-term assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 242</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 242</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (170)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (871)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,498)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,539)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (736)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (499)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (909)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,144)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (123)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (374)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (497)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred income tax liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,185)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (752)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,937)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Long-term income taxes payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (365)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (365)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,062)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,062)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net tangible assets (liabilities) assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (114)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (6,807)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,007)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,928)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Finite life intangible assets acquired:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,014</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,700</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,514</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,286</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35,186</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 122</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 322</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 500</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 487</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 500</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,487</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,691</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15,032</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,968</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 49,691</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35,877</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,134</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 32,261</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 93,272</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 represent 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 allocations, 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The acquired intangible assets are being amortized over their estimated useful lives as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:64.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:64.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">QuestaWeb</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Portrix</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">GreenMile</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">13 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">13 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">13 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The goodwill on the QuestaWeb, Portrix and GreenMile acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the QuestaWeb and GreenMile acquisition is deductible for tax purposes. The goodwill arising from the Portrix acquisition is not deductible for tax purposes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2021 Acquisitions</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On February&#160;21, 2020, Descartes acquired all of the shares of Peoplevox Limited (&#8220;Peoplevox&#8221;), a UK-based provider of cloud-based ecommerce warehouse management solutions. The purchase price for the acquisition was approximately $24.1 million, net of cash acquired, which was funded from a combination of cash on hand and drawing on Descartes&#8217; </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">existing credit facility. The gross contractual amount of trade receivables acquired was $0.4 million with a fair value of $0.4 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 January&#160;31, 2021 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On June&#160;10, 2020 Descartes acquired all of the shares of Cracking Logistics Limited (&#8220;Kontainers&#8221;), a UK-based provider of client-facing digital freight execution platforms. The purchase price for the acquisition was approximately $5.2 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to $6.0 million in cash is payable if certain revenue performance targets are met by Kontainers in the two&#160;years following the acquisition. The fair value of the contingent consideration was valued at $1.4 million at the acquisition date. The gross contractual amount of trade receivables acquired was $0.2 million with a fair value of $0.2 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 July&#160;31, 2021 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On November&#160;6, 2020, Descartes acquired all of the shares of ShipTrack&#160;Inc. (&#8220;ShipTrack&#8221;), a provider of cloud-based mobile resource management and shipment tracking solutions. The purchase price for the acquisition was approximately $19.0 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to CAD 25.0 million in cash is payable if certain revenue performance targets are met by ShipTrack in the two&#160;years following the acquisition. The fair value of the contingent consideration was valued at $2.8 million at the acquisition date. The gross contractual amount of trade receivables acquired was $1.7 million with a fair value of $1.7 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 October&#160;31, 2021 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The final purchase price allocations for businesses we acquired during 2021 are as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:55.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Peoplevox</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Kontainers</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 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;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">ShipTrack</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Purchase price consideration:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash, less cash acquired related to Peoplevox ($1,634), Kontainers (overdraft of $13) and ShipTrack ($529)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,137</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,237</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19,029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 48,403</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Consideration payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,414</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,825</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,239</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net working capital adjustments (receivable) / payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (42)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (87)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 64</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (65)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,095</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,664</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,918</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 52,677</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Allocated to:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current assets, excluding cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 485</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 469</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,853</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,807</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 151</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 151</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (776)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,074)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (693)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,543)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (748)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (102)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (204)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,054)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (151)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (151)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred income tax liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,615)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4,012)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,627)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (728)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (728)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net tangible assets (liabilities) assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,654)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (707)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,784)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,145)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Finite life intangible assets acquired:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,631</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,905</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,336</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 7,651</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,102</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,753</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 77</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 107</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 80</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 291</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 656</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15,182</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,461</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,327</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,970</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,095</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,664</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,918</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 52,677</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The acquired intangible assets are being amortized over their estimated useful lives as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Peoplevox</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Kontainers</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">ShipTrack</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">10 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">12 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">13 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">N/A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The goodwill on the Peoplevox, Kontainers and ShipTrack acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the Peoplevox, Kontainers and ShipTrack acquisitions are not deductible for tax purposes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2020 Acquisitions</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On February&#160;12, 2019, Descartes acquired substantially all of the assets of the businesses run by the Management Systems Resources&#160;Inc. group of companies (collectively, &#8220;Visual Compliance&#8221;), 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. The purchase price for the acquisition was approximately $248.9 million, net of cash acquired, which was funded from a combination of drawing on Descartes&#8217; existing credit facility and issuing to the sellers 0.3 million Descartes common shares from treasury. The gross contractual amount of trade receivables acquired was $6.4 million with a fair value of $5.2 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $1.2 million. The purchase price was finalized in the three&#160;month period ended January&#160;31, 2020 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On May&#160;10, 2019, Descartes acquired all the shares of Core Transport Technologies NZ Limited (&#8220;CORE&#8221;), an electronic transportation network that provides global air carriers and ground handlers with shipment scanning and tracking solutions. The purchase price for the acquisition was approximately $21.8 million, net of cash acquired, which was funded from drawing on Descartes&#8217; existing credit facility. Additional contingent consideration of up to $9.0 million in cash is payable if </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">certain revenue performance targets are met by CORE in the two&#160;years following the acquisition. The fair value of the contingent consideration was valued at $1.5 million at the acquisition date. The gross contractual amount of trade receivables acquired was $0.4 million with a fair value of $0.4 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, 2020 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On June&#160;27, 2019, Descartes acquired all the shares of Tegmento AG and Contentis AG (collectively, &#8220;STEPcom&#8221;), a business-to-business supply chain integration network based in Switzerland. The purchase price for the acquisition was approximately $18.6 million, net of cash acquired, which was funded from drawing on Descartes&#8217; existing credit facility. The gross contractual amount of trade receivables acquired was $0.9 million with a fair value of $0.8 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $0.1 million. The purchase price was finalized in the three&#160;month period ended July&#160;31, 2020 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On August&#160;20, 2019, Descartes acquired BestTransport.com,&#160;Inc. (&#8220;BestTransport&#8221;), a cloud-based transportation management system provider focused on flatbed-intensive manufacturers and distributors. The purchase price for the acquisition was approximately $11.7 million, net of cash acquired, which was funded from drawing on Descartes&#8217; existing credit facility. The gross contractual amount of trade receivables acquired was $0.6 million with a fair value of $0.6 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 July&#160;31, 2020 with no adjustments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The final purchase price allocations for businesses we acquired during 2020 are as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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;white-space:nowrap;width:48.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:6.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:6.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Visual&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">STEP-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Best-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Compliance</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">CORE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">com</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Transport</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Purchase price consideration:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Cash, less cash acquired related to Visual Compliance ($170), CORE ($213), STEPcom ($2,700) and BestTransport ($507)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 239,863</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,833</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18,639</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,718</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 292,053</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Common shares issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,045</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,045</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,450</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,450</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Net working capital adjustments payable / (receivable)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,147</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 62</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 250</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,459</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 250,055</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23,345</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18,889</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,718</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 304,007</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Allocated to:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current assets, excluding cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,403</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 689</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,470</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 815</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,377</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,048</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 257</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,370</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred income tax asset</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30,924</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30,924</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,188</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 68</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 232</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 194</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,682</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (840)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (352)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (874)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (284)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (2,350)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (10,267)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (278)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (813)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (9)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (11,367)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (1,188)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (68)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (232)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (194)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (1,682)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred income tax liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (282)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (3,332)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (2,316)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (1,352)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (7,282)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net tangible assets (liabilities) assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 25,968</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (1,225)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (2,276)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (795)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,672</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Finite life intangible assets acquired:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 32,186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,839</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 50,625</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 69,422</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 80,022</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 528</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 200</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 102</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 880</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,166</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 205</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 150</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,821</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 118,785</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,670</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,019</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,513</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 146,987</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 250,055</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23,345</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18,889</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,718</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 304,007</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The acquired intangible assets are being amortized over their estimated useful lives as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:51.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Visual&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Best&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Compliance</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">CORE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">STEPcom</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Transport</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">14 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">13 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">9 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">12 years</p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">7 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">N/A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">8 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2 years</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The goodwill on the Visual Compliance, CORE, STEPcom and BestTransport acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the CORE, STEPcom and BestTransport acquisitions is not deductible for tax purposes. The goodwill from the Visual Compliance acquisition is deductible for tax purposes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Pro Forma Results of Operations (Unaudited)</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired GreenMile, Portrix, QuestaWeb, ShipTrack, Kontainers, Peoplevox, BestTransport, STEPcom, CORE and Visual Compliance as of February&#160;1, 2019.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 GreenMile, Portrix, QuestaWeb, ShipTrack, </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Kontainers, Peoplevox, BestTransport, STEPcom, CORE and Visual Compliance occurred at February&#160;1, 2019, or to project our results of operations for any future period.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:59.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 429,531</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 369,271</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 354,484</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 85,549</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 48,788</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 30,933</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 1.01</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.58</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.38</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 0.99</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.57</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.37</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958440728">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;4&#160;&#8211; Fair Value Measurements</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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, the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Topic 820 establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into three levels:</p><table style="border-collapse:collapse;font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:17.85pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:9.5pt;vertical-align:text-top;white-space:nowrap;width:17.85pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 1</span><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">&#8212;</span><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:17.85pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:9.5pt;vertical-align:text-top;white-space:nowrap;width:17.85pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 2</span><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">&#8212;</span><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">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:'Arial','Helvetica','sans-serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:17.85pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:9.5pt;vertical-align:text-top;white-space:nowrap;width:17.85pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 3</span><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">&#8212;</span><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">inputs are generally unobservable and typically reflect management</span><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">&#8217;</span><span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;">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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table shows the Company&#8217;s financial instruments measured at fair value on a recurring basis as of January&#160;31, 2022:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:55.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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;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.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Level 1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Level 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Level 3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Equity derivative contracts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 10,863</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 10,863</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 12,990</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 12,990</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The following table shows the Company&#8217;s financial instruments measured at fair value on a recurring basis as of January&#160;31, 2021:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:55.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Level 1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Level 2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Level 3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Total</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Equity derivative contracts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,001</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,001</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,671</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,671</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 January&#160;31, 2022, we had equity derivatives for 252,011 Descartes common shares with a weighted average price of $29.55.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The fair value of equity contract derivatives is determined utilizing a valuation model 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 administrative expenses in the consolidated financial statements. For the&#160;years ended January&#160;31, 2022, 2021 and 2020, we recognized an expense (recovery) in general and administrative expenses of ($2.9) million, ($3.4) million and ($4.0) million, respectively.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table presents the changes in the fair value measurements in Level 3 of the fair value hierarchy:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:82.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:'Arial','Helvetica','sans-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:4.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 3</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,924</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Increase from acquisitions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,239</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (95)</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Charges through profit or loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,731)</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 334</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,671</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Increase from acquisitions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 3,339</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Charges through profit or loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 5,070</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (90)</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 12,990</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Estimates of the fair value of contingent consideration is performed by the Company on a quarterly basis. Key unobservable inputs include revenue growth rates and the <span style="-sec-ix-hidden:Hidden_v1hWYzs9B0OsbeIvMBY_nA;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">discount</span></span> <span style="-sec-ix-hidden:Hidden_pcGK0s4hq0-HLRSRmdjzvQ;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">rates</span></span> applied (11% to 13%). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>33
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958307400">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock', window );">Trade Accounts Receivable</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;5&#160;&#8211; Trade Accounts Receivable</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Trade accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 43,565</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 39,536</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Provision for credit losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (1,860)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,330)</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 41,705</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 37,206</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Included in accounts receivable are unbilled receivables in the amount of $0.5 million as at January&#160;31, 2022 ($0.3 million as at January&#160;31, 2021). No single customer accounted for more than 10% of the accounts receivable balance as of January&#160;31, 2022 and 2021.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The following table presents the changes in the provision for credit losses as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:83.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Provision</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">for Credit</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Losses</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,003</p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current period provision for expected losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,681</p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Write-offs charged against the provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,418)</p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 64</p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,330</p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current period provision for expected losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 1,007</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Write-offs charged against the provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (1,456)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (21)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 1,860</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958423992">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Receivables<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_dsgx_OtherReceivablesTextBlock', window );">Other Receivables</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;6&#160;&#8211; Other Receivables</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net working capital adjustments receivable from acquisitions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 309</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 237</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 13,766</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,593</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 14,075</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,830</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At January&#160;31, 2022, $0.3 million ($0.2 million as at January&#160;31, 2021) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.</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_OtherReceivablesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for other receivables.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958401032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventory<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">Inventory</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;7&#160;&#8211; Inventory</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">At January&#160;31, 2022 and January&#160;31, 2021, 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 the&#160;years ended January&#160;31, 2022, 2021 and 2020, a nominal provision for excess or obsolete inventories has been recorded in cost of revenues.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>36
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647962059032">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock', window );">Property and Equipment</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;8&#160;&#8211; Property and Equipment</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Computer equipment and software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 40,937</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 37,469</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,553</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,494</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 822</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 807</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Equipment installed with customers</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,635</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,654</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Assets under construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 524</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 998</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 45,471</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 42,422</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accumulated depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Computer equipment and software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 31,660</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28,123</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,257</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,081</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 531</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 401</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Equipment installed with customers</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,206</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 728</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 34,654</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30,333</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 10,817</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,089</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>37
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958333624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">Intangible Assets</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;9&#160;- Intangible Assets</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 251,402</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 240,479</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 326,411</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 295,161</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 9,038</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,844</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 12,306</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,939</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 599,157</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 555,423</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accumulated amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 135,380</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 119,361</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 218,953</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 183,539</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 6,677</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,996</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 8,538</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,535</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 369,548</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 315,431</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 229,609</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 239,992</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the&#160;year ended January&#160;31, 2022 is primarily due to the acquisitions of QuestaWeb, Portrix and GreenMile, partially offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be $229.6 million over the following periods: $53.4 million for 2023, $41.2 million for 2024, $38.4 million for 2025, $34.1 million for 2026, $19.3 million for 2027 and $43.2 million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958322424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_GoodwillDisclosureTextBlock', window );">Goodwill</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;10&#160;&#8211; Goodwill</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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, 2020:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at beginning of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 565,177</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 523,690</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of Peoplevox</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15,182</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of Kontainers</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,461</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of ShipTrack</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,327</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of QuestaWeb</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 21,691</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of Portrix</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 15,032</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of GreenMile</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 12,968</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Adjustments on account of foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (6,107)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,517</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 608,761</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 565,177</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><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>39
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958440728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Liabilities<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock', window );">Accrued Liabilities</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;11&#160;- Accrued Liabilities</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accrued compensation and benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 32,169</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24,643</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accrued professional fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,318</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,188</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Other accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 22,955</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,048</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 56,442</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 38,879</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Other accrued liabilities include accrued expenses related to third party resellers and royalties, suppliers, accrued restructuring charges and accrued contingent acquisition purchase consideration.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958432504">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_DebtDisclosureTextBlock', window );">Long-Term Debt</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;12&#160;&#8211; Long-Term Debt</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We have a senior secured revolving credit facility in place with a syndicate of lenders. 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&#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 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">No amounts were drawn on the credit facility as of January&#160;31, 2022 and the balance of $350.0 million is available for use. We were in compliance with the covenants of the credit facility as of January&#160;31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">As at January&#160;31, 2022, we had outstanding letters of credit of approximately $0.2 million ($0.2 million as at January&#160;31, 2021), which were not related to our credit facility.</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_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958318232">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Leases</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;13&#160;&#8211; Leases</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to 7&#160;years, some of which include options to extend the leases for up to 5&#160;years.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The components of operating lease expense were as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Operating lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4,466</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,590</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,902</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Short-term lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 432</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 502</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 866</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Total operating lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4,898</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,092</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,768</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Supplemental cash flow information related to operating leases was as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Operating cash outflows from operating leases included in measurement of lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4,857</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,831</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,150</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">New ROU assets obtained in exchange for lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 2,548</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,337</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,439</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Supplemental information related to operating leases was as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average remaining lease term (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 3.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 3.8</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average discount rate (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 2.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 2.5</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Maturities of operating lease liabilities were as follows as of January&#160;31, 2022:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:83.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Years Ended January 31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Operating</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Leases</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 4,349</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 3,526</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 2,429</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 1,131</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 322</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2028 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 186</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 11,943</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Less: imputed interest</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (532)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 11,411</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 4,029</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Long-term</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 7,382</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>42
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958315992">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments, Contingencies and Guarantees</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;14&#160;- Commitments, Contingencies and Guarantees</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Commitments</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As described in Note&#160;2 to these consolidated financial statements, 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 nil and $1.0 million, respectively, at January&#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 January&#160;31, 2022, we had equity derivatives for 252,011 Descartes common shares and a DSU liability for 252,011 Descartes common shares, resulting in no net exposure resulting from changes to our share price.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Contingencies</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Product Warranties</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Business combination agreements</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In respect of our acquisitions of Kontainers, ShipTrack and GreenMile, up to $35.6 million in cash may become payable if certain revenue performance targets are met in the two&#160;years following the acquisition. A balance of $13.0 million is accrued related to the fair value of this contingent consideration as at January&#160;31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Guarantees</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Intellectual property indemnification obligations</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Other indemnification agreements</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 consolidated financial statements for the guarantees or indemnities described above.</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_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.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 450<br> -URI http://asc.fasb.org/topic&amp;trid=2127136<br><br>Reference 2: 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><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 440<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6491277&amp;loc=d3e6429-115629<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123406679&amp;loc=d3e25336-109308<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123406679&amp;loc=d3e25336-109308<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958439608">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share Capital<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_dsgx_ShareCapitalTextBlock', window );">Share Capital</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;15&#160;&#8211; Share Capital</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 25-month period that the 2020 Base Shelf Prospectus, including any amendments thereto, remains valid is limited to an aggregate of $1 billion. No securities have yet been sold pursuant to the 2020 Base Shelf Prospectus.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The following table sets forth the common shares outstanding (number of shares in thousands):</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:11.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">(thousands of shares)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 84,494</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 84,156</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 76,865</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Shares issued:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Stock options and share units exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 262</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 338</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 95</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Issuance of common shares</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,900</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Acquisitions (Note 3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 296</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 84,756</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 84,494</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 84,156</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Cash flows provided from stock options and share units exercised during 2022, 2021 and 2020 were approximately $2.7 million, $6.2 million and $1.5 million, respectively.</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_ShareCapitalTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure and information regarding share capital.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ShareCapitalTextBlock</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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958337608">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Earnings Per Share</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;16&#160;&#8211; Earnings Per Share</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table sets forth the computation of basic and diluted earnings per share (&#8220;EPS&#8221;) (number of shares in thousands):</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net income for purposes of calculating basic and diluted earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 86,282</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 52,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,997</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 84,591</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 84,360</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 81,659</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Dilutive effect of employee stock options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 482</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 358</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 318</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Dilutive effect of restricted and performance share units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,127</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,038</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average common and common equivalent shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 86,200</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 85,756</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 82,867</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1.02</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.62</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.45</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.61</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.45</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">For the&#160;years ended January&#160;31, 2022, 2021 and 2020, the application of the treasury stock method excluded 267,236, 1,750 and 350,464 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">For the&#160;years ended January&#160;31, 2022, 2021 and 2020, 1,000, 71,161 and 5,909 stock 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Additionally, for the&#160;years ended January&#160;31, 2022, 2021 and 2020, the application of the treasury stock method excluded PSUs and RSUs of nil, 43,002 and nil, 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.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><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>45
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958460520">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Stock-Based Compensation Plans</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;17&#160;&#8211; Stock-Based Compensation Plans</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Total estimated stock-based compensation expense recognized in our consolidated statement of operations was as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 732</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 319</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 220</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Sales and marketing</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 3,060</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 896</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 706</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,419</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 404</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 281</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">General and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 5,806</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,694</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,702</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Effect on net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 11,017</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,313</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,909</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 $0.7 million ($0.7 million at January&#160;31, 2021) recognized in the United States. The tax benefit realized in connection with stock options exercised during 2022, 2021 and 2020 was $0.1 million, nominal and $0.1 million, respectively.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Stock Options</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As of January&#160;31, 2022, we had 1,319,279 stock options granted and outstanding under our shareholder-approved stock option plan and 3,041,719 remained available for grant.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As of January&#160;31, 2022, $6.1 million of total unrecognized compensation costs, net of forfeitures, related to non-vested stock option awards is expected to be recognized over a weighted average period of 2.6&#160;years. The total fair value of stock options vested during 2022 was $3.4 million.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The total number of options granted during the&#160;years ended January&#160;31, 2022, 2021 and 2020 was 271,025, 381,859 and 367,173, respectively. The weighted average grant-date fair value of options granted during the&#160;years ended January&#160;31, 2022, 2021 and 2020 was $16.77, $10.19 and $8.99 per option, respectively.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The weighted-average assumptions were as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Expected dividend yield (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Expected volatility (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 27.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23.5</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Risk-free rate (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 0.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.4</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Expected option life (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">A summary of option activity under all of our plans is presented as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:50.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:1.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.85%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">(in</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Life (years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,127,822</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26.82</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 20.2</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 381,859</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 41.51</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (338,342)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18.43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (23,619)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 33.88</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,147,720</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 33.77</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28.1</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 271,025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 65.03</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (90,166)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 29.38</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (9,300)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 53.94</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,319,279</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 42.35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 41.5</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Vested or expected to vest at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,319,279</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 42.35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 41.5</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">Exercisable at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 856,426</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 36.91</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 3.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 31.6</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The total intrinsic value of options exercised during the&#160;years ended January&#160;31, 2022, 2021 and 2020 was approximately $3.7 million, $10.8 million and $2.0 million, respectively.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Options outstanding and options exercisable as at January&#160;31, 2022 by range of exercise price are as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:44.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:31.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Options Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:19.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Options Exercisable</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Weighted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Weighted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Average</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Weighted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Average</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Number of</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Remaining</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Average</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Number of</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Exercise</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Contractual</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Exercise</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Stock</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Range of Exercise Prices</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Price</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Life (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Price</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Options</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$19.78 &#8211; $23.86</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22.55</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 176,500</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22.55</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 176,500</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$27.39 &#8211; $29.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 191,754</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 176,417</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$40.22 &#8211; $52.38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 40.69</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 618,325</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 40.60</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 414,713</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$56.63 &#8211; $78.55</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 63.59</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 332,700</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 63.79</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 88,796</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 42.35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,319,279</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 36.91</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 856,426</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">A summary of the status of our unvested stock options under our shareholder-approved stock option plan as of January&#160;31, 2022 is presented as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:66.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number&#160;of&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#160;Grant-Date</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Stock&#160;Options&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#160;Fair&#160;Value&#160;per&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">409,653</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">8.03</p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 381,859</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10.19</p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (266,238)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.19</p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (23,619)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.87</p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 501,655</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.52</p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 271,025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 16.77</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (300,527)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 11.42</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (9,300)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 13.54</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 462,853</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 13.16</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Performance Share Units</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">A summary of PSU activity is as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:48.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:1.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:1.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted-&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.24%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Aggregate&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Granted&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;PSUs&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;(in</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">629,874</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">21.19</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">5.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">28.2</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">85,334</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">54.24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Performance units issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">40,665</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">29.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">755,873</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">25.17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">4.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">44.0</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 77,441</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 88.11</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Performance units issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 44,296</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 36.63</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (100,072)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 9.66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 777,538</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 35.76</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 4.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 57.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested or expected to vest at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 777,538</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 35.76</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 4.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 57.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Exercisable at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 561,034</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 23.15</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 3.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 41.4</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January&#160;31, 2022) that would have been received by PSU holders if all PSUs had been vested on January&#160;31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As of January&#160;31, 2022, $6.7 million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of 1.1&#160;years. The total fair value of PSUs vested during 2022 was $3.6 million.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Restricted Share Units</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">A summary of RSU activity is as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number&#160;of&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Granted&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Remaining&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">RSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Date&#160;Fair&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contractual&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#160;Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#160;Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#160;(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 374,677</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 16.57</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 16.8</p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 57,518</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 43.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 432,195</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19.98</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 25.2</p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 50,099</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 65.33</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (71,314)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 7.14</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 410,980</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 29.17</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 30.3</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Vested or expected to vest at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 410,980</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 29.17</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 30.3</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Exercisable at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 355,765</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 24.62</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 26.3</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January&#160;31, 2022) that would have been received by RSU holders if all RSUs had been vested on January&#160;31, 2022.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As of January&#160;31, 2022, $3.2 million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of 1.6&#160;years. The total fair value of RSUs vested during 2022 was $2.6 million.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Deferred Share Unit Plan</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As at January&#160;31, 2022, the total number of DSUs held by participating directors was 252,011 (226,525 at January&#160;31, 2021), representing an aggregate accrued liability of $18.3 million ($13.8 million at January&#160;31, 2021). During 2022, 25,486 DSUs were granted and nil DSUs were redeemed and settled in cash. As at January&#160;31, 2022, the unrecognized aggregate liability for the unvested DSUs was nil (nil at January&#160;31, 2021). 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 in our consolidated statements of operations was approximately $4.5 million, $4.6 million and $5.0 million for the&#160;years ended January&#160;31, 2022, 2021 and 2020, respectively.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Cash-Settled Restricted Share Unit Plan</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">A summary of activity under our CRSU plan is as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:68.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number&#160;of&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Remaining&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">CRSUs&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contractual&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Life&#160; (years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 42,727</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.6</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26,629</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested and settled in cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (30,480)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (248)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 38,628</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.5</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 12,776</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested and settled in cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (26,755)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (221)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 24,428</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-vested at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 24,428</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1.4</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 $0.8 million at January&#160;31, 2022 ($0.9 million at January&#160;31, 2021). As at January&#160;31, 2022, the unrecognized aggregate liability for the unvested CRSUs was $1.0 million ($1.5 million at January&#160;31, 2021). 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 in our consolidated statements of operations was approximately $1.3 million, $1.1 million and $0.9 million for the&#160;years ended January&#160;31, 2022, 2021 and 2020, respectively.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958362008">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Taxes</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;18&#160;- Income Taxes</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Income before income taxes is earned in the following tax jurisdictions:</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:55.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 36,312</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31,307</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,557</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 32,338</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26,072</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,962</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Other countries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 33,960</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,516</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 102,610</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 70,369</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 48,035</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Income tax expense is incurred in the following jurisdictions:</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:55.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Current income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,817</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,875</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,020</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 8,689</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (3,050)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,496</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other countries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4,308</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,921</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 779</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 14,814</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,295</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Deferred income tax expense (recovery)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 8,381</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,047</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,008</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,941</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,537</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,390</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other countries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (8,808)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (2,061)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (655)</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,514</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,523</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,743</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 16,328</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18,269</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,038</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Income tax expense for 2022, 2021 and 2020 was 16%, 26% and 23% of income before income taxes, respectively, with current income tax expense being 14%, 5% and 11% of income before income taxes, respectively.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Current income tax expense increased in 2022 compared to 2021 primarily due to a current tax recovery in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Current income tax expense decreased in 2021 compared to 2020 primarily due to a voluntary change we elected to adopt in accounting for deferred revenue for income tax purposes in the United States. This change resulted in a decrease of $9.3 million in current income tax expense in 2021 and a corresponding increase in the <span style="-sec-ix-hidden:Hidden_oRGbY52OSUKIW_NyZgdorw;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">deferred</span></span> income tax expense for the same period. This decrease was partially offset by an increase in income before tax in other jurisdictions as a result of growth in the business.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Deferred income tax expense decreased in 2022 compared to 2021 primarily due to additional deferred tax expense in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company as well as a release in valuation allowances recorded in 2022 related to tax losses in EMEA carried forward from previous periods.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Deferred income tax expense increased in 2021 compared to 2020 primarily due to a voluntary change we elected to adopt in accounting for deferred revenue for income tax purposes in the United States.&#160;This increase was partially offset by a release in valuation allowance for other jurisdictions.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The components of the deferred income tax assets and liabilities are as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:69.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:12.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:'Arial','Helvetica','sans-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:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accrued liabilities not currently deductible</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 5,408</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,471</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accumulated net operating losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 10,594</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,866</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Corporate minimum taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 2,346</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,596</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Difference between tax and accounting basis of property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 12,021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23,754</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Research and development and other tax credits and expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 1,172</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,649</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred income tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 31,541</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 44,336</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Difference between tax and accounting basis of intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (47,255)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (45,030)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Difference between tax and accounting basis of property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Other temporary differences</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (2,886)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,109)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred income tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (50,141)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (47,139)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net deferred income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (18,600)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,803)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (1,961)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (11,365)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net deferred income taxes, net of valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (20,561)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (14,168)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As at January&#160;31, 2022, we have not accrued for foreign withholding taxes and Canadian income taxes applicable to approximately $573.0 million of unremitted earnings of subsidiaries operating outside of Canada. These earnings, which we consider to be invested indefinitely, will become subject to these taxes if and when they are remitted as dividends or if we sell our stock in the subsidiaries. If we decide to repatriate the foreign earnings, we would need to adjust our income tax provision in the period we determined that the earnings will no longer be indefinitely invested outside Canada.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The provision (recovery) for income taxes varies from the expected provision at the statutory rates for the reasons detailed in the table below:</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:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income before income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">102,610</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">70,369</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">48,033</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Combined basic Canadian statutory rates</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 26.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income tax expense based on the above rates</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 27,192</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 18,648</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,729</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Increase (decrease) in income taxes resulting from:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Permanent differences</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 3,467</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 875</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (673)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of differences between Canadian and foreign tax rates</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (1,855)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (600)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (274)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of rate changes on current year timing differences</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (1,085)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,063)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (609)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Adjustments relating to previous periods</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (569)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,034)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 94</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Increase (decrease) in accruals for uncertain tax positions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (849)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,289</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,042)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (9,102)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 254</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 692</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Stock based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Other, including foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (871)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (200)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (231)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 16,328</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 18,269</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,038</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">We have income tax loss carry forwards which expire as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:37.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:14.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Expiry year</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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.36%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Canada</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">United&#160;States</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">EMEA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Asia&#160;Pacific</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 49</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 49</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 186</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 67</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 107</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 417</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 769</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,473</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 33,054</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,553</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 44,102</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 8,022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,890</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 33,094</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 2,207</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 45,213</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following is a tabular reconciliation of the total estimated liability associated with uncertain tax positions taken:</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:69.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Liability, beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 8,393</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,650</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Gross increases &#8211; current period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 333</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,502</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Lapsing due to statutes of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (1,372)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (759)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Liability, end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 7,354</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,393</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We have identified accruals of <span style="-sec-ix-hidden:Hidden_TB-LMOBP7kaQwfz92D98Eg;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">$7.4</span></span> million with respect to uncertain tax positions as at January&#160;31, 2022. It is possible that these accruals for uncertain tax positions will not be required in which case up to $7.4 million of the recorded liability will decrease the effective tax rate in future&#160;years if this liability is reversed. We believe that it is reasonably possible that $2.1 million of the uncertain tax positions could decrease tax expense in the next 12&#160;months relating primarily to tax&#160;years becoming statute barred for purposes of future tax examinations by local taxing jurisdictions.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We recognize accrued interest and penalties related to uncertain tax positions as a current tax expense. As at January&#160;31, 2022 and January&#160;31, 2021, the unrecognized tax positions have resulted in no material liability for estimated interest and penalties.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Descartes and our subsidiaries file their tax returns as prescribed by the tax laws of the jurisdictions within which they operate. We are no longer subject to income tax examinations by tax authorities in our major tax jurisdictions as follows:</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:66.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:top;width:33.92%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">Years No Longer Subject to Audit</b></p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Tax Jurisdiction</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">United States Federal</p></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2019 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Canada</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2017 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">United Kingdom</p></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2019 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Sweden</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2015 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Norway</p></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2020 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Netherlands</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2014 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Belgium</p></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2018 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Germany</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2017 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Switzerland</p></td><td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2016 and prior</p></td></tr><tr style="height:12.9pt;"><td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;">Brazil</p></td><td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">2016 and prior</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>47
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958392424">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Contract Balances, Performance Obligations and Contract Costs</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;19&#160;&#8211; Contract Balances, Performance Obligations and Contract Costs</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Deferred Revenue</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table presents the changes in the deferred revenue balance as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:75.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:21.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:'Arial','Helvetica','sans-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:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Deferred&#160;Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 42,063</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Recognition of previously deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (37,843)</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferral of revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46,386</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases from business combinations, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 39</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 646</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 51,291</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Recognition of previously deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (38,065)</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferral of revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 45,234</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases from business combinations, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 729</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (489)</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 58,700</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 56,780</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Long-term</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,920</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Performance Obligations</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As of January&#160;31, 2022, approximately $366.8 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 80% of these remaining performance obligations over the next 24&#160;months with the balance recognized thereafter.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Contract Assets</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table presents the changes in the contract assets balance as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:78.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:18.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:'Arial','Helvetica','sans-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:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:18.67%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contract&#160;Assets</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,107</p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Transfers to trade receivables from contract assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (563)</p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 783</p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26</p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,353</p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Transfers to trade receivables from contract assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (730)</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 815</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 5</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,443</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Contract Costs</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Capitalized contract costs net of accumulated amortization is $16.6 million at January&#160;31, 2022 ($12.9 million at January&#160;31, 2021). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates. The total contract cost amortization included in sales and marketing expenses was approximately $4.7 million, $3.3 million and $2.5 million for the&#160;years ended January&#160;31, 2022, 2021 and 2020, respectively.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>48
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958358600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Charges<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock', window );">Other Charges</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;20&#160;- Other Charges</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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 </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following tables shows the components of other charges as follows:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Acquisition-related costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,904</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,457</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Contingent consideration adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4,458</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (1,946)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 340</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Restructuring plans</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 6,428</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,335</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,797</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Fiscal 2021 Restructuring Plan</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In the second quarter of fiscal 2021, management approved and began to implement a restructuring plan (the &#8220;Fiscal 2021 Restructuring Plan&#8221;) to reduce operating expenses. To date, $2.4 million has been recorded within other charges in conjunction with this restructuring plan. These charges are comprised of workforce reduction and the accelerated ROU asset amortization associated with certain office closures. This plan is substantially complete with a nominal amount of future expected office closure costs.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following table shows the changes in the restructuring provision for the Fiscal 2021 Restructuring Plan:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Workforce</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Reduction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Office&#160;Closures</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accruals and adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,717</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 583</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,300</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash draw downs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,657)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (583)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,240)</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 70</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 70</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accruals and adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 64</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 66</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash draw downs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (72)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (64)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (136)</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>49
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958434440">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_CashFlowSupplementalDisclosuresTextBlock', window );">Supplemental Cash Flow Information</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;21&#160;&#8211; Supplemental Cash Flow Information</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The following tables presents the cash flow changes in operating asset and liabilities:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:11.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Trade accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (2,884)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 143</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,733</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 2,042</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,098)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,547)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Prepaid expenses and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (8,276)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,029)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,942)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Inventory</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (498)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 99</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (345)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 2,336</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (686)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,768</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 13,760</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (999)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,265</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income taxes payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 426</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,835</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,550)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (259)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 283</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 546</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 6,142</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,877</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4,184)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 12,789</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,575)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,256)</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashFlowSupplementalDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958395208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segmented Information</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;22&#160;- Segmented Information</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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 one reportable business segment providing logistics technology solutions. The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 242,086</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 211,232</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 202,814</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Europe, Middle-East and Africa</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 128,990</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 94,163</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 82,596</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 36,116</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29,388</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27,304</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Asia Pacific</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 17,498</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,881</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,077</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 424,690</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 348,664</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 325,791</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">License</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"><b style="font-weight:bold;"> 5,060</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> 5,054</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> 7,582</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"><b style="font-weight:bold;"> 378,494</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> 309,731</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> 284,654</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Professional services and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"><b style="font-weight:bold;"> 41,136</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> 33,879</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"> 33,555</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 424,690</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 348,664</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 325,791</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total long-lived assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 102,649</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 92,442</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Europe, Middle-East and Africa</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 43,922</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 39,769</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 84,943</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 107,472</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Asia Pacific</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 8,912</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,398</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 240,426</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 252,081</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>51
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958341960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Event<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Event</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;">Note&#160;23&#160;&#8211; Subsequent Event</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">On February&#160;9, 2022, Descartes acquired all of the shares of NetCHB, LLC, 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 consideration of up to $60.0 million based on NetCHB achieving revenue-based targets over the first two&#160;years post-acquisition. As of the issue date of these consolidated financial statements, the fair value of the acquired assets and liabilities has not been determined.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.</p></div>
<a href="javascript:void(0);" onclick="top.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 855<br> -URI http://asc.fasb.org/topic&amp;trid=2122774<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6842918&amp;loc=SL6314017-165662<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="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>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958625896">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</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="top.Show.showAR( this, 'defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock', window );">Basis of Presentation</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The accompanying 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 the US Securities and Exchange Commission (&#8220;SEC&#8221;) for the preparation of consolidated financial statements.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The world continues to experience a global pandemic related to the spread of the COVID-19 virus (the &#8220;Pandemic&#8221;). 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.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our fiscal&#160;year commences on February&#160;1<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of each&#160;year and ends on January&#160;31<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of the following&#160;year. Our fiscal&#160;year, which ends on January&#160;31, 2022, is referred to as the &#8220;current fiscal&#160;year&#8221;, &#8220;fiscal 2022&#8221;, &#8220;2022&#8221; or using similar words. Our previous fiscal&#160;year, which ended on January&#160;31, 2021, is referred to as the &#8220;previous fiscal&#160;year&#8221;, &#8220;fiscal 2021&#8221;, &#8220;2021&#8221; or using similar words. Other fiscal&#160;years are referenced by the applicable&#160;year during which the fiscal&#160;year ends. For example, &#8220;2023&#8221; refers to the annual period ending January&#160;31, 2023 and the &#8220;fourth quarter of 2023&#8221; refers to the quarter ending January&#160;31, 2023.</p><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="top.Show.showAR( this, 'defref_us-gaap_ConsolidationPolicyTextBlock', window );">Basis of consolidation</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Basis of consolidation</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.</p><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="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign currency translation</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Foreign currency translation</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The US dollar is the presentation currency of the Company. Assets and liabilities of our subsidiaries are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses are translated into US dollars using daily exchange rates. Translation adjustments resulting from this process are accumulated in other comprehensive income (loss) as a separate component of shareholders&#8217; equity. On substantial liquidation of a foreign operation, the component of accumulated other comprehensive income relating to that particular foreign operation is recognized in the consolidated statements of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The functional currency of each of our entities is generally the local currency in which they operate. Transactions incurred in currencies other than the local currency of an entity are converted to the local currency at the transaction date. Monetary assets and liabilities denominated in foreign currencies are re-measured into the local currency at the exchange rate in effect at the balance sheet date. All foreign currency re-measurement gains and losses are included in net income. For the&#160;year ended January&#160;31, 2022, foreign currency re-measurement loss of $0.3 million was included in net income (January&#160;31, 2021&#160;&#8211; loss of $0.8 million; January&#160;31, 2020&#160;&#8211; loss of $0.6 million).</p><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="top.Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of estimates</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Use of estimates</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Preparing financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts that are reported in the consolidated financial statements and accompanying note disclosures. Although these estimates and assumptions are based on management&#8217;s best knowledge of current events, actual results may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Estimates and assumptions are used when accounting for items such as allocations of the purchase price and the fair value of net assets acquired in business combination transactions, useful lives of intangible assets and property and equipment, revenue related estimates including determining the nature and timing of satisfaction of performance obligations, variable consideration, and other obligations such as product returns and refunds, allowance for doubtful accounts, collectability of other receivables, provisions for excess or obsolete inventory, determining the Company&#8217;s incremental borrowing rate, restructuring accruals, fair value of stock-based compensation, assumptions embodied in the valuation of assets for impairment assessment, accounting for income taxes, valuation allowances for deferred income tax assets, realization of investment tax credits, uncertain tax positions and recognition of contingencies. Significant assumptions and judgment are used when determining the standalone selling price (&#8220;SSP&#8221;) of performance obligations in contracts with customers.</p><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="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Cash</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Cash included highly liquid short-term deposits with original maturities of three&#160;months or less.</p><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="top.Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Financial instruments</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Financial instruments</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Fair value of financial instruments</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The carrying amounts of the Company&#8217;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Derivative instruments</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 &#8220;Derivatives and Hedging&#8221; (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments&#8217; fair values are recognized in earnings. The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Foreign exchange risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Interest rate risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Depending on the type of advance under the available facilities, interest on such borrowings will be charged based on either i) Canada or US prime rate; or ii) Banker&#8217;s Acceptance (BA); or iii) US dollar London Interbank Offer Rate (LIBOR); or iv) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Credit risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to credit risk through our invested cash and accounts receivable. We hold our cash with reputable financial institutions. The lack of concentration of accounts receivable from a single customer and the dispersion of customers among industries and geographical locations mitigate our credit risk.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Equity risk</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. 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 Company does not hold derivatives for speculative purposes.</p><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="top.Show.showAR( this, 'defref_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy', window );">Provision for Credit Losses</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Provision for Credit Losses</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We are exposed to credit losses primarily through our trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions.</p><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="top.Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventory</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Inventory</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Finished goods inventories are stated at the lower of cost and net realizable value. The cost of finished goods is determined on the basis of average cost of units.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.</p><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="top.Show.showAR( this, 'defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock', window );">Impairment of long-lived assets</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Impairment of long-lived assets</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal&#160;years presented.</p><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="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock', window );">Goodwill and intangible assets</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Goodwill and intangible assets</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We test for impairment of goodwill at least annually on October&#160;31<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of each&#160;year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our reporting unit&#8217;s carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit. We completed the qualitative assessment during our third quarter of 2022 and concluded that it was more likely than not that the fair value of the goodwill was greater than the carrying value. As a result, no impairment of goodwill was recorded in fiscal 2022 (no impairments were recorded for fiscal 2021 or fiscal 2020).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset 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 asset or asset groups is determined by discounting the expected related future cash flows.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Amortization of our intangible assets is generally recorded at the following rates:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:47.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:'Arial','Helvetica','sans-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.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_X5IRyacMyEe63uLdWdhnyg;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twenty years</p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technologies</p></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_H4Aki753xUGuQreNk3KAuw;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> to twelve years</p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_R3HFVPmLxECS61adSjqHBQ;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to fifteen years</p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_eEcpTStYuEqXnki-TnMzpQ;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twelve years</p></td></tr></table><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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property and equipment</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Property and equipment</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Property and equipment is recorded at cost.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Effective February&#160;1, 2020, we changed our accounting method for property&#160;&amp; equipment from the declining balance method of depreciation to the straight-line method of depreciation to better reflect the consumption of the assets&#8217; economic benefits. Our change in the method of depreciation is considered a change in accounting estimate effected by a change in accounting principle and has been applied prospectively. The change in the method of depreciation did not have a material impact on our results of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Depreciation of our property and equipment is generally recorded at the following rates:</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:80%;"><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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:47.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:'Arial','Helvetica','sans-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:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Computer equipment and software</p></td><td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over 1 to 13 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over 3 to 14 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Leasehold improvements</p></td><td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over lesser of useful life or term of lease</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Equipment installed with customers</p></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over 3 years</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.</p><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="top.Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Leases</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">At the inception of a contract we assess whether a contract is, or contains, a lease based on whether the contract conveys the right to control the use of an identified asset for a period of time in exchange for consideration. We have building lease agreements with lease and non-lease components, which are accounted for separately. For computer equipment and vehicle leases, we have elected to account for the lease and non-lease components as a single lease component.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We recognize a right-of-use (&#8220;ROU&#8221;) asset and a lease liability at the lease commencement date. The ROU asset is initially measured based on the initial amount of the lease liability adjusted for any lease payments made at or before the commencement date, plus any initial direct costs incurred and less any lease incentives received. The assets are depreciated to the earlier of the end of the useful life of the ROU asset or the lease term using the straight-line method as this most closely reflects the expected pattern of consumption of the future economic benefits. The lease term includes periods covered by an option to extend if the Company is reasonably certain to exercise that option.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The lease liability is initially measured at the present value of the future lease payments at the commencement date, discounted using the interest rate implicit in the lease or, if that rate cannot be readily determined, the Company&#8217;s incremental borrowing rate. As most of our leases do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The lease liability is measured at amortized cost using the effective interest method. It is remeasured when there is a change in future lease payments arising from a change in an index or rate, if there is a change in the Company&#8217;s estimate of the amount expected to be payable under a residual value guarantee, or if the Company changes its assessment of whether it will exercise a purchase, extension or termination option. When the lease liability is remeasured, a corresponding </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">adjustment is made to the carrying amount of the ROU asset, or is recorded in profit or loss if the carrying amount of the ROU asset has been reduced to zero.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12&#160;months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.</p><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="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock', window );">Revenue recognition</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Revenue recognition</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the SSP. SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. In addition to these general policies, the specific revenue recognition policies for each major category of revenue are included below.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">License</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Revenues for distinct licenses for on-premise or hosted software are derived from perpetual licenses granted to our customers for the right to use our software products. License revenues are billed on the effective date of a contract and revenue is recognized at the point in time when the customer is provided control of the respective software.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Services</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Services, which allow customers to access hosted software over a contract term without taking possession of the software, is provided on a subscription and/or transactional fee basis. Revenues from hosted software subscriptions and maintenance are typically billed annually in advance and revenue is recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Transaction fees are typically billed and recognized as revenue on a&#160;monthly basis based on the customer usage for that period.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Professional Services&#160;&amp; Other</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Professional services are comprised of consulting, implementation and training services related to our services and products. These services are generally considered to be separate performance obligations as they provide incremental benefit to customers beyond providing access to the software. Professional services are typically billed on a time and materials basis and revenue is recognized over time as the services are performed. For professional services contracts billed on a fixed price basis, revenue is recognized over time based on the proportion of services performed. Revenue related to customer reimbursement of travel related expenses is recognized on a gross basis as incurred. Other revenues include hardware revenue and is generally billed, and revenue is recognized, when control of the product has transferred under the terms of an enforceable contract.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of its promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Costs to obtain a contract with a customer</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between <span style="-sec-ix-hidden:Hidden_HWyYO8ERp0Wr4ZxBm81I0w;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> to six&#160;years, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one&#160;year or less.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Contract assets and liabilities</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s)&#160;and relates primarily to prepaid maintenance or other recurring services. Deferred revenues are relieved as revenue is recognized. Contract assets and deferred revenues are reported on a contract-by-contract basis at the end of each reporting period.</p><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="top.Show.showAR( this, 'defref_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock', window );">Research and development costs</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Research and development costs</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.</p><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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-based compensation plans</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Stock-based compensation plans</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Stock Options</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Employee stock options generally vest over a five-year period starting from the grant date and expire seven&#160;years from the grant date. Non-employee directors&#8217; and officers&#8217; stock options generally have quarterly vesting over a <span style="-sec-ix-hidden:Hidden_MlLWcOJvI0Cji82e8NzJRw;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to five-year period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The fair value of employee stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Performance&#160;&amp; Restricted Share Units</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (&#8220;PSUs&#8221;) and restricted share units (&#8220;RSUs&#8221;).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">PSUs vest at the end of a three-year performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&#8220;TSR&#8221;) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading&#160;days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire ten&#160;years from the grant date. New shares are issued from treasury upon the redemption of a PSU.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">PSUs are measured at fair value estimated using a Monte Carlo Simulation approach. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">RSUs vest annually over a three-year period starting from the grant date and expire ten&#160;years from the grant date. We issue new shares from treasury upon the redemption of an RSU.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Deferred Share Unit Plan</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our board of directors adopted a deferred share unit plan effective as of June&#160;28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (&#8220;DSUs&#8221;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading&#160;days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none or a&#160;percentage of the eligible director&#8217;s fees which would otherwise be payable in cash. If a director has invested less than the minimum amount of equity in Descartes, as prescribed from time to time by the board of directors, then the director must take at least 50% of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="text-decoration-line:underline;text-decoration-style:solid;">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Our board of directors adopted a cash-settled restricted share unit plan effective as of May&#160;23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&#8220;CRSUs&#8221;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading&#160;days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over <span style="-sec-ix-hidden:Hidden_-ChMqGiq8EGz7VHoOSALbg;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to five-year periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30&#160;days following a vesting date and in any event prior to December&#160;31<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> of the calendar&#160;year in which a vesting date occurs. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.</p><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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationsPolicy', window );">Business combinations</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Business combinations</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We apply the provisions of ASC Topic 805, &#8220;Business Combinations&#8221; (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one&#160;year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, &#8220;Exit or Disposal Cost Obligations&#8221; (Topic 420) and are accounted for separately from the business combination.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.</p><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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income taxes</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Income taxes</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We use the liability method of income tax allocation to account for income taxes. Deferred tax assets and liabilities arise from temporary differences between the tax bases of assets and liabilities and their reported amounts in the consolidated financial statements that will result in taxable or deductible amounts in future&#160;years. These temporary differences are measured using enacted tax rates. A valuation allowance is recorded to reduce deferred tax assets to the extent that we consider it is more likely than not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes.&#160;The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.</p><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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerSharePolicyTextBlock', window );">Earnings per share</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Earnings per share</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">Basic earnings per share is calculated by dividing net income by the weighted average number of common shares outstanding during the period. Diluted earnings per common share is calculated by dividing net income by the sum of the weighted average number of common shares outstanding and all additional common shares that would have been </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">outstanding if potentially dilutive common shares had been issued during the period. The treasury stock method is used to compute the dilutive effect of stock-based compensation.</p><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="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recently adopted accounting pronouncements</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Recently adopted accounting pronouncements</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In February&#160;2016, the FASB issued Accounting Standards Update 2016-02, &#8220;Leases (Topic 842)&#8221; (&#8220;ASU 2016-02&#8221;) and issued subsequent amendments to the initial guidance during 2018, collectively referred to as &#8220;ASC 842&#8221;. These updates supersede the lease guidance in ASC Topic 840, &#8220;Leases&#8221; and require the recognition of lease assets and lease liabilities by lessees for most leases previously classified as operating leases under ASC Topic 840. Leases will continue to be classified as either operating or finance. ASC 842 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2018, which was our fiscal&#160;year that began on February&#160;1, 2019 (fiscal 2020). The Company adopted ASC 842 as of February&#160;1, 2019 using the cumulative effect method.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">As permitted under ASC 842, we have elected to apply the practical expedient to carry forward our current assessments of whether a contract contains a lease, lease classification, remaining lease terms and amounts capitalized as initial direct costs. We have also elected to apply the practical expedient not to recognize right-of-use (ROU) assets and lease liabilities for short-term leases that have a lease term of 12&#160;months or less. The adoption of ASC 842 resulted in an increase to ROU assets and lease liabilities of $10.4 million as of February&#160;1, 2019. The adoption of ASC 842 did not have a material impact on either our consolidated statement of operations or our consolidated statement of cash flows.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In June&#160;2016, the FASB issued Accounting Standards Update 2016-13, &#8220;Financial Instruments&#160;&#8211; Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments&#8221; (&#8220;ASU 2016-13&#8221;) and issued subsequent amendments to the initial guidance during the 2019 calendar&#160;year, collectively referred to as &#8220;ASC 326&#8221;. ASC 326 requires the measurement and recognition of expected credit losses for financial assets held at amortized cost. ASC 326 replaces the existing incurred loss impairment model with an expected loss model which requires the use of forward-looking information to calculate credit loss estimates. ASC 326 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021).</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The Company is exposed to credit losses primarily through its trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions. The Company adopted ASC 326 as of February&#160;1, 2020 using the cumulative effect method and therefore the comparative information has not been restated. The adoption of ASC 326 did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In January&#160;2017, the FASB issued Accounting Standards Update 2017-04, &#8220;Intangibles&#160;&#8211; Goodwill and Other (Topic 350): Simplifying the Test for Goodwill Impairment&#8221; (&#8220;ASU 2017-04&#8221;). ASU 2017-04 simplifies how an entity is required to test goodwill for impairment. ASU 2017-04 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">In August&#160;2018, the FASB issued Accounting Standards Update 2018-15, &#8220;Intangibles&#160;&#8211; Goodwill and Other&#160;&#8211; Internal-Use Software (Subtopic 350-40): Customer&#8217;s Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract&#8221; (&#8220;ASU 2018-15&#8221;). ASU 2018-15 aligns the requirements for capitalizing implementation costs incurred in a hosting arrangement that is a service contract with the requirements for capitalizing implementation costs incurred to develop or obtain internal-use software. ASU 2018-15 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">In December&#160;2019, the FASB issued Accounting Standards Update 2019-12, &#8220;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes&#8221; (&#8220;ASU 2019-12&#8221;). ASU 2019-12 simplifies how an entity accounts for income taxes. ASU 2019-12 is effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2020, </p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">which is our fiscal&#160;year that began on February&#160;1, 2021 (fiscal 2022). The Company adopted this guidance in the first quarter of fiscal 2022. The adoption of this guidance did not have a material impact on our results of operations or disclosures.</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;">Recently issued accounting pronouncements</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">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.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.</p></div>
<a href="javascript:void(0);" onclick="top.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 05<br> -Paragraph 4<br> -Subparagraph (a)-(d)<br> -URI http://asc.fasb.org/extlink&amp;oid=6909625&amp;loc=d3e227-128457<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsPolicy</td>
</tr>
<tr>
<td style="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_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.</p></div>
<a href="javascript:void(0);" onclick="top.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 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4273-108586<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(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConsolidationPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting.  The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.</p></div>
<a href="javascript:void(0);" onclick="top.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 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123372394&amp;loc=d3e18823-107790<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 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=d3e5614-111684<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConsolidationPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerSharePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.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 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 2: http://fasb.org/us-gaap/role/ref/legacyRef<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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerSharePolicyTextBlock</td>
</tr>
<tr>
<td style="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_FairValueOfFinancialInstrumentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the fair value of financial instruments.</p></div>
<a href="javascript:void(0);" onclick="top.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 60<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=7493716&amp;loc=d3e21868-110260<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13279-108611<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueOfFinancialInstrumentsPolicy</td>
</tr>
<tr>
<td style="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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.</p></div>
<a href="javascript:void(0);" onclick="top.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> -URI http://asc.fasb.org/topic&amp;trid=2175825<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock</td>
</tr>
<tr>
<td style="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_GoodwillAndIntangibleAssetsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.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 30<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock</td>
</tr>
<tr>
<td style="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_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the impairment and disposal of long-lived assets including goodwill and other intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="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_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.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 25<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32247-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 50<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32847-109319<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 19<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32840-109319<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 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL116659661-227067<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 9<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-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 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32280-109318<br><br>Reference 7: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.</p></div>
<a href="javascript:void(0);" onclick="top.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> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4556-108314<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 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 330<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6471895&amp;loc=d3e55923-109411<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4492-108314<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124437754&amp;loc=d3e543-108305<br><br>Reference 6: 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><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123372394&amp;loc=d3e18823-107790<br><br>Reference 8: 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(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for leasing arrangement entered into by lessee.</p></div>
<a href="javascript:void(0);" onclick="top.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 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918666-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeLeasesPolicyTextBlock</td>
</tr>
<tr>
<td style="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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="top.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 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99779-112916<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(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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 6<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99893-112916<br><br>Reference 4: 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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized.</p></div>
<a href="javascript:void(0);" onclick="top.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(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 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5144-111524<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy</td>
</tr>
<tr>
<td style="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_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Section 25<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=16397303&amp;loc=d3e19347-109286<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 350<br> -SubTopic 40<br> -Section 30<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118172244&amp;loc=d3e17916-109280<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.15)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock</td>
</tr>
<tr>
<td style="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_RevenueFromContractWithCustomerPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue from contract with customer.</p></div>
<a href="javascript:void(0);" onclick="top.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 17<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130561-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 50<br> -Paragraph 20<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130566-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 18<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130563-203045<br><br>Reference 4: 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 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 20<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130566-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 18<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130563-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=123372394&amp;loc=d3e18823-107790<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 20<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130566-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 19<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130564-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 20<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130566-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerPolicyTextBlock</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</p></div>
<a href="javascript:void(0);" onclick="top.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 (b),(f)<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 1<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="top.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 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6191-108592<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6161-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6143-108592<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6061-108592<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6132-108592<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647959515352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of amortization of intangible assets</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:47.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:'Arial','Helvetica','sans-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.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_X5IRyacMyEe63uLdWdhnyg;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twenty years</p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technologies</p></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_H4Aki753xUGuQreNk3KAuw;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> to twelve years</p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_R3HFVPmLxECS61adSjqHBQ;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to fifteen years</p></td></tr><tr><td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_eEcpTStYuEqXnki-TnMzpQ;"><span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twelve years</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="top.Show.showAR( this, 'defref_dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock', window );">Schedule of depreciation of property, plant and equipment</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:80%;"><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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;width:47.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:'Arial','Helvetica','sans-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:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Computer equipment and software</p></td><td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over 1 to 13 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over 3 to 14 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Leasehold improvements</p></td><td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over lesser of useful life or term of lease</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Equipment installed with customers</p></td><td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Straight-line over 3 years</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_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of accumulated depreciation of property, plant and equipment useful life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock</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_dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, amortization of useful life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock</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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956997768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock', window );">Schedule of Acquisitions of Business</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-size:9pt;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:56.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:7.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:7.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:'Arial','Helvetica','sans-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:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">QuestaWeb</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Portrix</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Green&#160;Mile</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Purchase price consideration:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash, less cash acquired related to QuestaWeb ($2,097), Portrix ($200) and GreenMile ($1,552)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35,860</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,188</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 29,230</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 90,278</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,339</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,339</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net working capital adjustments payable / (receivable)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (54)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (308)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (345)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35,877</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,134</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 32,261</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 93,272</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Allocated to:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current assets, excluding cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 714</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 810</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,710</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 78</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 89</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 167</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 374</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 497</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Other long-term assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 242</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 242</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (170)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (871)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,498)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,539)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (736)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (499)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (909)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,144)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (123)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (374)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (497)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred income tax liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,185)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (752)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,937)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Long-term income taxes payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (365)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (365)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,062)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,062)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net tangible assets (liabilities) assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (114)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (6,807)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,007)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,928)</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Finite life intangible assets acquired:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,014</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,700</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,514</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,286</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35,186</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 122</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 322</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 500</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 487</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 500</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,487</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,691</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15,032</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,968</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 49,691</p></td></tr><tr><td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35,877</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,134</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 32,261</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 93,272</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:55.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Peoplevox</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Kontainers</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 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;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">ShipTrack</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Purchase price consideration:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash, less cash acquired related to Peoplevox ($1,634), Kontainers (overdraft of $13) and ShipTrack ($529)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,137</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,237</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19,029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 48,403</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Consideration payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,414</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,825</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,239</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Net working capital adjustments (receivable) / payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (42)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (87)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 64</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (65)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,095</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,664</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,918</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 52,677</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Allocated to:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current assets, excluding cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 485</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 469</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,853</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,807</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 151</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 151</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (776)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,074)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (693)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,543)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (748)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (102)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (204)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,054)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (151)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (151)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred income tax liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,615)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4,012)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,627)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (728)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (728)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net tangible assets (liabilities) assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,654)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (707)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,784)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,145)</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Finite life intangible assets acquired:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,631</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,905</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,336</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 7,651</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,102</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,753</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 77</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 107</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 80</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 291</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 656</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15,182</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,461</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,327</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,970</p></td></tr><tr><td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,095</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,664</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,918</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 52,677</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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;white-space:nowrap;width:48.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:6.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:6.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Visual&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">STEP-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Best-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Compliance</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">CORE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">com</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Transport</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Purchase price consideration:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Cash, less cash acquired related to Visual Compliance ($170), CORE ($213), STEPcom ($2,700) and BestTransport ($507)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 239,863</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,833</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18,639</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,718</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 292,053</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Common shares issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,045</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,045</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,450</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,450</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Net working capital adjustments payable / (receivable)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,147</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 62</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 250</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,459</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 250,055</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23,345</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18,889</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,718</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 304,007</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Allocated to:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current assets, excluding cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,403</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 689</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,470</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 815</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,377</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,048</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 257</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,370</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred income tax asset</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30,924</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30,924</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,188</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 68</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 232</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 194</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,682</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (840)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (352)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (874)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (284)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (2,350)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (10,267)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (278)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (813)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (9)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (11,367)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (1,188)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (68)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (232)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (194)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (1,682)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferred income tax liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (282)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (3,332)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (2,316)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (1,352)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (7,282)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net tangible assets (liabilities) assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 25,968</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (1,225)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (2,276)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (795)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,672</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Finite life intangible assets acquired:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 32,186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,839</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 50,625</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 69,422</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 80,022</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 528</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 200</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 102</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 880</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,166</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 205</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 150</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,821</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 118,785</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,670</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,019</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,513</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 146,987</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 250,055</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23,345</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18,889</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,718</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 304,007</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="top.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:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:64.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:64.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">QuestaWeb</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Portrix</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">GreenMile</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">13 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">13 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">13 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Peoplevox</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Kontainers</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">ShipTrack</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">10 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">12 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">13 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">N/A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:51.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Visual&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Best&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Compliance</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">CORE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">STEPcom</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Transport</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">14 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">13 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">9 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">12 years</p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">7 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">N/A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6 years</p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">8 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td></tr><tr><td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3 years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2 years</p></td></tr></table><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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaInformationTextBlock', window );">Business Acquisition, Pro Forma Information</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:59.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 429,531</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 369,271</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 354,484</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 85,549</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 48,788</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 30,933</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 1.01</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.58</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.38</p></td></tr><tr><td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 0.99</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.57</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.37</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647959513960">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock', window );">Schedule of derivative assets at fair value</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:55.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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;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.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Level 1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Level 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Level 3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Equity derivative contracts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 10,863</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 10,863</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 12,990</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 12,990</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:55.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Level 1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Level 2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Level 3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">Total</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Equity derivative contracts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,001</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,001</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,671</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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,671</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="top.Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock', window );">Schedule of changes in fair value measurements</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:82.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:'Arial','Helvetica','sans-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:4.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 3</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,924</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Increase from acquisitions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,239</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (95)</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Charges through profit or loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,731)</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 334</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,671</p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Increase from acquisitions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 3,339</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Charges through profit or loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 5,070</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (90)</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 12,990</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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of derivative assets at fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-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>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958322424">
<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">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Jan. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock', window );">Schedule of Accounts, Notes, Loans and Financing Receivable</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Trade accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 43,565</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 39,536</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Provision for credit losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (1,860)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,330)</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 41,705</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 37,206</p></td></tr></table><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="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock', window );">Accounts Receivable, Allowance for Credit Loss</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:83.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Provision</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">for Credit</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Losses</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,003</p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current period provision for expected losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,681</p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Write-offs charged against the provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,418)</p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 64</p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,330</p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current period provision for expected losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 1,007</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Write-offs charged against the provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (1,456)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (21)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 1,860</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>57
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958285784">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_dsgx_OtherReceivablesTableTextBlock', window );">Schedule of other receivables</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net working capital adjustments receivable from acquisitions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 309</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 237</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 13,766</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,593</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 14,075</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,830</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_OtherReceivablesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Schedule of other receivables.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-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>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958400200">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Schedule of property, plant and equipment</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Computer equipment and software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 40,937</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 37,469</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,553</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,494</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 822</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 807</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Equipment installed with customers</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,635</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,654</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Assets under construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 524</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 998</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 45,471</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 42,422</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accumulated depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Computer equipment and software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 31,660</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28,123</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,257</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,081</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 531</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 401</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Equipment installed with customers</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,206</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 728</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 34,654</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 30,333</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 10,817</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,089</p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-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>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958361448">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of Intangible Assets</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 251,402</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 240,479</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 326,411</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 295,161</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 9,038</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,844</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 12,306</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,939</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 599,157</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 555,423</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accumulated amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 135,380</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 119,361</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Existing technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 218,953</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 183,539</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Trade names</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 6,677</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,996</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 8,538</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,535</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 369,548</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 315,431</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 229,609</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 239,992</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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958440168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_srt_ScheduleOfCondensedCashFlowStatementTableTextBlock', window );">Schedule of changes in goodwill</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at beginning of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 565,177</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 523,690</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of Peoplevox</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15,182</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of Kontainers</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,461</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of ShipTrack</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,327</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of QuestaWeb</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 21,691</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of Portrix</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 15,032</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Acquisition of GreenMile</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 12,968</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Adjustments on account of foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (6,107)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,517</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 608,761</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 565,177</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_srt_ScheduleOfCondensedCashFlowStatementTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of condensed cash flow statement, including, but not limited to, cash flow statements of consolidated entities and consolidation eliminations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher SEC<br> -Name Regulation S-X (SX)<br> -Number 210<br> -Section 3<br> -Paragraph i<br> -Subsection 10<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ScheduleOfCondensedCashFlowStatementTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>srt_</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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958440168">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Schedule of Accrued Liabilities</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accrued compensation and benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 32,169</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24,643</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Accrued professional fees</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,318</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,188</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Other accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 22,955</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,048</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 56,442</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 38,879</p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956769160">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_us-gaap_LeaseCostTableTextBlock', window );">Schedule of lease cost</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Operating lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4,466</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,590</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,902</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Short-term lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 432</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 502</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 866</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Total operating lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4,898</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,092</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,768</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Operating cash outflows from operating leases included in measurement of lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4,857</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,831</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,150</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">New ROU assets obtained in exchange for lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 2,548</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,337</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,439</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average remaining lease term (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 3.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 3.8</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average discount rate (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 2.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 2.5</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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Schedule of maturities for operating lease liabilities</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:83.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Years Ended January 31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Operating</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="margin-left:0pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Leases</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 4,349</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 3,526</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 2,429</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 1,131</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 322</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">2028 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 186</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 11,943</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Less: imputed interest</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (532)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 11,411</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 4,029</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Long-term</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 7,382</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958419128">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share Capital (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock', window );">Schedule of common shares outstanding</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;">The following table sets forth the common shares outstanding (number of shares in thousands):</p><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:11.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">(thousands of shares)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 84,494</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 84,156</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 76,865</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Shares issued:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Stock options and share units exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 262</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 338</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 95</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Issuance of common shares</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,900</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Acquisitions (Note 3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 296</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 84,756</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 84,494</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 84,156</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_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the change in common stock outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-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>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647957294488">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.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:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Net income for purposes of calculating basic and diluted earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 86,282</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 52,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,997</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 84,591</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 84,360</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 81,659</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Dilutive effect of employee stock options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 482</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 358</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 318</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Dilutive effect of restricted and performance share units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,127</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,038</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Weighted average common and common equivalent shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 86,200</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 85,756</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 82,867</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1.02</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.62</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.45</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.61</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.45</p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647957320520">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Schedule of share-based payment arrangement, expensed and capitalized amount</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Cost of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 732</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 319</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 220</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Sales and marketing</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 3,060</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 896</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 706</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,419</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 404</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 281</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">General and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 5,806</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,694</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,702</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Effect on net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 11,017</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,313</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,909</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Schedule of Share-based payment award, valuation assumptions</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Expected dividend yield (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Expected volatility (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 27.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23.5</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Risk-free rate (%)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 0.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.4</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Expected option life (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5</p></td></tr></table><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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Schedule of the stock option activity</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="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:50.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:1.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.85%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">(in</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Life (years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,127,822</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26.82</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 20.2</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 381,859</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 41.51</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (338,342)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18.43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (23,619)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 33.88</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,147,720</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 33.77</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28.1</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 271,025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 65.03</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (90,166)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 29.38</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (9,300)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 53.94</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,319,279</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 42.35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 41.5</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Vested or expected to vest at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,319,279</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 42.35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 41.5</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">Exercisable at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 856,426</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 36.91</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 3.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 31.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock', window );">Schedule of share-based payment arrangement, option, exercise price range</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:44.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:31.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Options Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:19.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Options Exercisable</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Weighted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Weighted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Average</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Weighted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Average</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Number of</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Remaining</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Average</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Number of</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Exercise</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Stock</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Contractual</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Exercise</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Stock</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Range of Exercise Prices</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Price</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Life (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Price</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">Options</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$19.78 &#8211; $23.86</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22.55</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 176,500</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22.55</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 176,500</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$27.39 &#8211; $29.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 191,754</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 176,417</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$40.22 &#8211; $52.38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 40.69</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 618,325</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 40.60</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 414,713</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">$56.63 &#8211; $78.55</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 63.59</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 332,700</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 63.79</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 88,796</p></td></tr><tr><td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 42.35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,319,279</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 36.91</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 856,426</b></p></td></tr></table><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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock', window );">Schedule of Non vested share activity</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:66.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number&#160;of&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#160;Grant-Date</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Stock&#160;Options&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#160;Fair&#160;Value&#160;per&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">409,653</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">8.03</p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 381,859</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10.19</p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (266,238)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.19</p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (23,619)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.87</p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 501,655</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.52</p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 271,025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 16.77</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (300,527)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 11.42</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (9,300)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 13.54</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 462,853</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 13.16</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock', window );">Schedule of Share-based payment arrangement, performance shares, outstanding activity</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:48.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:1.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:1.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted-&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.24%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Aggregate&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Granted&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;PSUs&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;(in</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">629,874</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">21.19</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">5.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">28.2</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">85,334</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">54.24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Performance units issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">40,665</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">29.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">755,873</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">25.17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">4.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">44.0</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 77,441</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 88.11</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Performance units issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 44,296</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 36.63</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (100,072)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 9.66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 777,538</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 35.76</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 4.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 57.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested or expected to vest at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 777,538</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 35.76</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 4.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 57.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Exercisable at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 561,034</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 23.15</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 3.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 41.4</b></p></td></tr></table><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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock', window );">Schedule of restricted stock and restricted stock unit activity</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number&#160;of&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Granted&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Remaining&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">RSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Date&#160;Fair&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contractual&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#160;Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#160;Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">&#160;(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 374,677</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 16.57</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 16.8</p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 57,518</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 43.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 432,195</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19.98</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 25.2</p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 50,099</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 65.33</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (71,314)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 7.14</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 410,980</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 29.17</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 30.3</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Vested or expected to vest at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 410,980</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 29.17</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 30.3</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Exercisable at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 355,765</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 24.62</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 26.3</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="top.Show.showAR( this, 'defref_dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock', window );">Schedule of cash settled restricted share unit plan activity</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;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:68.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Weighted-&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Average&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Number&#160;of&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Remaining&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">CRSUs&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contractual&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Life&#160; (years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 42,727</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.6</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26,629</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested and settled in cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (30,480)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (248)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 38,628</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1.5</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 12,776</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Vested and settled in cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (26,755)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (221)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 24,428</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Non-vested at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 24,428</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1.4</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Schedule of cash settled under restricted share units.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_ScheduleOfNonvestedShareActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in outstanding nonvested shares.</p></div>
<a href="javascript:void(0);" onclick="top.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)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock</td>
</tr>
<tr>
<td style="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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647957071768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock', window );">Schedule of Income before Income Tax, Domestic and Foreign</a></td>
<td class="text"><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:55.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 36,312</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31,307</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,557</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 32,338</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26,072</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,962</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Other countries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 33,960</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,516</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 102,610</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 70,369</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 48,035</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Schedule of components of Income Tax Expense (Benefit)</a></td>
<td class="text"><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:55.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Current income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,817</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,875</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,020</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 8,689</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (3,050)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,496</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other countries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4,308</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,921</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 779</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 14,814</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,295</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Deferred income tax expense (recovery)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';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.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 8,381</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,047</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,008</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,941</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,537</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,390</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other countries</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (8,808)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (2,061)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (655)</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,514</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,523</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,743</p></td></tr><tr><td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 16,328</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 18,269</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,038</p></td></tr></table><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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Schedule of deferred tax assets and liabilities</a></td>
<td class="text"><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:69.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:12.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:'Arial','Helvetica','sans-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:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accrued liabilities not currently deductible</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 5,408</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,471</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accumulated net operating losses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 10,594</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,866</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Corporate minimum taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 2,346</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,596</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Difference between tax and accounting basis of property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 12,021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23,754</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Research and development and other tax credits and expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 1,172</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,649</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred income tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 31,541</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 44,336</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Difference between tax and accounting basis of intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (47,255)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (45,030)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Difference between tax and accounting basis of property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Other temporary differences</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (2,886)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,109)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred income tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (50,141)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (47,139)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net deferred income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (18,600)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,803)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (1,961)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (11,365)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net deferred income taxes, net of valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (20,561)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (14,168)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:9.5pt;visibility:hidden;">&#8203;</span></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Schedule of effective income tax rate reconciliation</a></td>
<td class="text"><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:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income before income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">102,610</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">70,369</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">48,033</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Combined basic Canadian statutory rates</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 26.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income tax expense based on the above rates</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 27,192</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 18,648</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,729</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Increase (decrease) in income taxes resulting from:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Permanent differences</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 3,467</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 875</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (673)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of differences between Canadian and foreign tax rates</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (1,855)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (600)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (274)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of rate changes on current year timing differences</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (1,085)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,063)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (609)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Adjustments relating to previous periods</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (569)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,034)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 94</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Increase (decrease) in accruals for uncertain tax positions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (849)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,289</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,042)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (9,102)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 254</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 692</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Stock based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Other, including foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (871)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (200)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (231)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 16,328</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 18,269</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,038</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr></table><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="top.Show.showAR( this, 'defref_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock', window );">Summary of operating loss carryforwards</a></td>
<td class="text"><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:37.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:14.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Expiry year</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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.36%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Canada</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">United&#160;States</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">EMEA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Asia&#160;Pacific</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 49</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 49</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 186</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 67</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 107</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 417</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 769</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,473</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 33,054</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,553</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 44,102</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 8,022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,890</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 33,094</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 2,207</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 45,213</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock', window );">Schedule of unrecognized tax benefits roll forward</a></td>
<td class="text"><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:69.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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: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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Liability, beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 8,393</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,650</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Gross increases &#8211; current period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 333</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,502</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Lapsing due to statutes of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (1,372)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (759)</p></td></tr><tr><td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Liability, end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 7,354</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,393</p></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.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 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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of income before income tax between domestic and foreign jurisdictions.</p></div>
<a href="javascript:void(0);" onclick="top.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(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the change in unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="top.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 740<br> -SubTopic 10<br> -Section 55<br> -Paragraph 217<br> -URI http://asc.fasb.org/extlink&amp;oid=124434304&amp;loc=d3e36027-109320<br><br>Reference 2: 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 15A<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="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_SummaryOfOperatingLossCarryforwardsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of pertinent information, such as tax authority, amounts, and expiration dates, of net operating loss carryforwards, including an assessment of the likelihood of utilization.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32559-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock</td>
</tr>
<tr>
<td style="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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958426280">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Contract with Customer, Contract Asset, Contract Liability, and Receivable</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:75.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:21.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:'Arial','Helvetica','sans-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:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Deferred&#160;Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 42,063</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Recognition of previously deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (37,843)</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferral of revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46,386</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases from business combinations, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 39</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 646</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 51,291</p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Recognition of previously deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (38,065)</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Deferral of revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 45,234</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases from business combinations, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 729</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (489)</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 58,700</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 56,780</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Long-term</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,920</b></p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:78.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:18.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:'Arial','Helvetica','sans-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:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:18.67%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">Contract&#160;Assets</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,107</p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Transfers to trade receivables from contract assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (563)</p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 783</p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 26</p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,353</p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Transfers to trade receivables from contract assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;"> (730)</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 815</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of movements in foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 5</b></p></td></tr><tr><td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,443</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-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>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958408984">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock', window );">Schedule of components of other charges</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Acquisition-related costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 1,904</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,457</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Contingent consideration adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 4,458</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"> (1,946)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 340</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Restructuring plans</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 66</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 6,428</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,335</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,797</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock', window );">Schedule of changes in restructuring plan</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Workforce</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;Reduction</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Office&#160;Closures</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accruals and adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,717</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 583</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,300</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash draw downs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,657)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (583)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,240)</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Foreign exchange</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 70</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> &#8212;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 70</p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Accruals and adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 64</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 66</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cash draw downs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (72)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (64)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (136)</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at January 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> &#8212;</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_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.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 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<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)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock</td>
</tr>
<tr>
<td style="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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958434440">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.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:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:11.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Trade accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (2,884)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 143</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,733</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 2,042</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,098)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,547)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Prepaid expenses and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (8,276)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,029)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,942)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Inventory</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (498)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 99</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (345)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 2,336</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (686)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,768</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 13,760</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (999)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,265</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income taxes payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 426</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,835</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,550)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> (259)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 283</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 546</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 6,142</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,877</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4,184)</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 12,789</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,575)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,256)</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-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>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140648156741864">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</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="top.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:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:11.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;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:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">2020</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 242,086</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 211,232</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 202,814</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Europe, Middle-East and Africa</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 128,990</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 94,163</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 82,596</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 36,116</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29,388</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27,304</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Asia Pacific</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 17,498</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,881</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,077</p></td></tr><tr><td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><b style="font-weight:bold;"> 424,690</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 348,664</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 325,791</p></td></tr></table><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Schedule of segment reporting information, by segment</a></td>
<td class="text"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#8203;</span></p><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="top.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:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">&#8203;</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:70.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">January&#160;31,&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">January&#160;31,&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total long-lived assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 102,649</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 92,442</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Europe, Middle-East and Africa</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 43,922</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 39,769</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Canada</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 84,943</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 107,472</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Asia Pacific</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 8,912</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,398</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><b style="font-weight:bold;"> 240,426</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 252,081</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647953425768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Feb. 01, 2019</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax', window );">Foreign Currency Transaction Gain (Loss), before Tax, Total</a></td>
<td class="nump">$ 300,000<span></span>
</td>
<td class="nump">$ 800,000<span></span>
</td>
<td class="nump">$ 600,000<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="top.Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill, Impairment Loss</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNet', window );">Contract with Customer, Asset, after Allowance for Credit Loss, Total</a></td>
<td class="nump">1,443,000<span></span>
</td>
<td class="nump">1,353,000<span></span>
</td>
<td class="nump">$ 1,107,000<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="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other Assets, Noncurrent, Total</a></td>
<td class="nump">18,652,000<span></span>
</td>
<td class="nump">15,550,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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred Income Tax Liabilities, Net, Total</a></td>
<td class="nump">35,523,000<span></span>
</td>
<td class="nump">29,385,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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained Earnings (Accumulated Deficit), Ending Balance</a></td>
<td class="nump">2,612,000<span></span>
</td>
<td class="num">(83,670,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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating Lease, Liability, Total</a></td>
<td class="nump">11,411,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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating Lease, Right-of-Use Asset</a></td>
<td class="nump">$ 10,571,000<span></span>
</td>
<td class="nump">$ 12,165,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="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member', window );">Accounting Standards Update 2016-02 [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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating Lease, Liability, Total</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,400,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)</a></td>
<td class="text">5 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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)</a></td>
<td class="text">7 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)</a></td>
<td class="text">3 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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)</a></td>
<td class="text">10 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)</a></td>
<td class="text">3 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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)</a></td>
<td class="text">10 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_BaseAnnualFeePercent', window );">Base Annual Fee, Percent</a></td>
<td class="nump">50.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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember', window );">Equipment [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life (Year)</a></td>
<td class="text">3 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals', window );">Costs to Obtain a Contract with a Customer, Period of Benefit Including Renewals (Year)</a></td>
<td class="text">4 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Directors and Officers [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)</a></td>
<td class="text">3 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Cash-Settled Restricted Share 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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_CashSettledRestrictedShareUnitsVestingPeriod', window );">Cash Settled Restricted Share Units, Vesting Period (Year)</a></td>
<td class="text">3 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Computer Equipment [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life (Year)</a></td>
<td class="text">1 year<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="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Furniture and Fixtures [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life (Year)</a></td>
<td class="text">3 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals', window );">Costs to Obtain a Contract with a Customer, Period of Benefit Including Renewals (Year)</a></td>
<td class="text">6 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Directors and Officers [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)</a></td>
<td class="text">5 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Cash-Settled Restricted Share 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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_CashSettledRestrictedShareUnitsVestingPeriod', window );">Cash Settled Restricted Share Units, Vesting Period (Year)</a></td>
<td class="text">5 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Computer Equipment [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life (Year)</a></td>
<td class="text">13 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Furniture and Fixtures [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life (Year)</a></td>
<td class="text">14 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Minimum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life (Year)</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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Maximum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life (Year)</a></td>
<td class="text">20 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | Minimum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life (Year)</a></td>
<td class="text">4 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | Maximum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life (Year)</a></td>
<td class="text">12 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Minimum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life (Year)</a></td>
<td class="text">3 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Maximum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life (Year)</a></td>
<td class="text">15 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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Minimum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life (Year)</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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Maximum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life (Year)</a></td>
<td class="text">12 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>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_BaseAnnualFeePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The base annual fee percentage required for Directors participating in a share-based compensation plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BaseAnnualFeePercent</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_CashSettledRestrictedShareUnitsVestingPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Period which an employee's right to exercise an award is no longer contingent on satisfaction of either a service condition, market condition or a performance condition, 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CashSettledRestrictedShareUnitsVestingPeriod</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_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the period of benefit, including renewals, associated with the asset for the incremental costs of obtaining a contract with a customer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals</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_ContractWithCustomerAssetNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_DeferredIncomeTaxLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ForeignCurrencyTransactionGainLossBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.</p></div>
<a href="javascript:void(0);" onclick="top.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 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=125521441&amp;loc=d3e30690-110894<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 35<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123602790&amp;loc=d3e30226-110892<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17<br> -URI http://asc.fasb.org/extlink&amp;oid=120253306&amp;loc=d3e28228-110885<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124440516&amp;loc=d3e30840-110895<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionGainLossBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from the write-down of an asset representing the 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="top.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 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13854-109267<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><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 (e)<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 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13777-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><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_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-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_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.</p></div>
<a href="javascript:void(0);" onclick="top.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 (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Period from grant date that an equity-based award expires, 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="top.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 (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</td>
</tr>
<tr>
<td style="padding-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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member</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_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AwardTypeAxis=dsgx_DeferredShareUnitPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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=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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_EquipmentMember</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TitleOfIndividualAxis=dsgx_DirectorsAndOfficersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TitleOfIndividualAxis=dsgx_DirectorsAndOfficersMember</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=dsgx_CashsettledRestrictedSharePlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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=dsgx_CashsettledRestrictedSharePlanMember</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_ComputerEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>72
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647949514056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions (Details)<br> shares in Thousands, $ in Thousands, &#8364; in Millions, $ in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2"></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="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<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>Nov. 06, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 10, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 21, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Aug. 20, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 27, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>May 10, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 12, 2019 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Jan. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2020 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Nov. 06, 2020 </div>
<div>CAD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">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="text">&#160;<span></span>
</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">$ 90,278<span></span>
</td>
<td class="nump">$ 48,403<span></span>
</td>
<td class="nump">$ 292,053<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Business Combination, Contingent Consideration, Liability, Total</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="nump">12,990<span></span>
</td>
<td class="nump">4,671<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Business Combination, 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="text">&#160;<span></span>
</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,904<span></span>
</td>
<td class="nump">1,981<span></span>
</td>
<td class="nump">3,457<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PeoplevoxMember', window );">Peoplevox [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">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">$ 24,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="nump">24,137<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</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">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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Business Combination, Acquired Receivable, Fair Value</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">$ 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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</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>
<td class="nump">24,095<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_KontainersMember', window );">Kontainers [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">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="nump">$ 5,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="nump">5,237<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</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="nump">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>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Business Combination, Acquired Receivable, Fair Value</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="nump">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>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</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="nump">$ 6,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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Business Combination, Contingent Consideration Arrangements, Period for Revenue Performance Targets (Year)</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">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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Business Combination, Contingent Consideration, Liability, Total</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="nump">$ 1,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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</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>
<td class="nump">6,664<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_ShipTrackMember', window );">ShipTrack [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">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">$ 19,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="nump">19,029<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</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">1,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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Business Combination, Acquired Receivable, Fair Value</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">$ 1,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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 25.0<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Business Combination, Contingent Consideration Arrangements, Period for Revenue Performance Targets (Year)</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">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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Business Combination, Contingent Consideration, Liability, Total</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">$ 2,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</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>
<td class="nump">21,918<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_QuestawebMember', window );">QuestaWeb [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">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">$ 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">35,860<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</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">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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Business Combination, Acquired Receivable, Fair Value</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">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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible', window );">Business Combination, Acquired Receivables, Estimated Uncollectible</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>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</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="nump">35,877<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PortrixMember', window );">Portrix [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Net of cash acquired</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,188<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</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>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Business Combination, Acquired Receivable, Fair Value</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>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</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="nump">25,134<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_GreenmileMember', window );">GreenMile [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Net of cash acquired</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">29,230<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Business Combination, Acquired Receivable, Fair Value</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Business Combination, Contingent Consideration, Liability, Total</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible', window );">Business Combination, Acquired Receivables, Estimated Uncollectible</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</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="nump">32,261<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2021AcquisitionsMember', window );">The 2021 Acquisitions [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">48,403<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</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>
<td class="nump">$ 52,677<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_Acquisitions2022Member', window );">Acquisitions 2022 [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Business Combination, 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="text">&#160;<span></span>
</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="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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual', window );">Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual</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="nump">12,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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual', window );">Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual</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="nump">$ 1,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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_VisualComplianceMember', window );">Visual Compliance [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 248,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 239,863<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</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="nump">6,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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Business Combination, Acquired Receivable, Fair Value</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="nump">$ 5,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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued', window );">Business Acquisition, Equity Interest Issued or Issuable, Number of Shares (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">296<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible', window );">Business Combination, Acquired Receivables, Estimated Uncollectible</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="nump">$ 1,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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 250,055<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_CoreTransportTechnologiesNzLimitedMember', window );">Core Transport Technologies NZ Limited [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 21,800<span></span>
</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">21,833<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</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="nump">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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Business Combination, Acquired Receivable, Fair Value</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="nump">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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</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="nump">$ 9,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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Business Combination, Contingent Consideration Arrangements, Period for Revenue Performance Targets (Year)</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">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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Business Combination, Contingent Consideration, Liability, Total</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="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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">23,345<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_StepcomMember', window );">STEPcom [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">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="text">&#160;<span></span>
</td>
<td class="nump">$ 18,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="nump">18,639<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</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="nump">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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Business Combination, Acquired Receivable, Fair Value</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="nump">800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible', window );">Business Combination, Acquired Receivables, Estimated Uncollectible</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="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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">18,889<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_BesttransportMember', window );">BestTransport [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">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">$ 11,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="nump">11,718<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</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">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>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Business Combination, Acquired Receivable, Fair Value</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">$ 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>
<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 11,718<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares of equity interests issued or issuable to acquire entity.</p></div>
<a href="javascript:void(0);" onclick="top.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 (b)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued</td>
</tr>
<tr>
<td style="padding-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_BusinessCombinationAcquiredReceivablesEstimatedUncollectible">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_PeoplevoxMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_PeoplevoxMember</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_KontainersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_KontainersMember</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_ShipTrackMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ShipTrackMember</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_QuestawebMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_The2021AcquisitionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_The2021AcquisitionsMember</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_Acquisitions2022Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_Acquisitions2022Member</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_VisualComplianceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_VisualComplianceMember</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_CoreTransportTechnologiesNzLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_CoreTransportTechnologiesNzLimitedMember</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_StepcomMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StepcomMember</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_BesttransportMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_BesttransportMember</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>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647935074024">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)<br> $ in Thousands, &#8364; in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2"></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="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<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>Nov. 06, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 10, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 21, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Aug. 20, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 27, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>May 10, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 12, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2020 </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="top.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="text">&#160;<span></span>
</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">$ 90,278<span></span>
</td>
<td class="nump">$ 48,403<span></span>
</td>
<td class="nump">$ 292,053<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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="nump">608,761<span></span>
</td>
<td class="nump">565,177<span></span>
</td>
<td class="nump">523,690<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="top.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="text">&#160;<span></span>
</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">90,278<span></span>
</td>
<td class="nump">48,403<span></span>
</td>
<td class="nump">292,053<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PeoplevoxMember', window );">Peoplevox [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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">$ 24,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="nump">24,137<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(42)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">24,095<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">485<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(776)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(748)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</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>
<td class="num">(1,615)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,654)<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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>
<td class="nump">15,182<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="top.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">$ 24,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="nump">24,137<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PeoplevoxMember', window );">Peoplevox [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,631<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PeoplevoxMember', window );">Peoplevox [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">7,651<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PeoplevoxMember', window );">Peoplevox [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">285<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_KontainersMember', window );">Kontainers [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="nump">$ 5,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="nump">5,237<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationConsiderationTransferredPayable', window );">Consideration 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,414<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(87)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">6,664<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">469<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,074)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(102)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(707)<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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>
<td class="nump">3,461<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="top.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="nump">$ 5,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="nump">5,237<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_KontainersMember', window );">Kontainers [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">800<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_KontainersMember', window );">Kontainers [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_KontainersMember', window );">Kontainers [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">30<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_KontainersMember', window );">Kontainers [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">80<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_ShipTrackMember', window );">ShipTrack [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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">$ 19,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="nump">19,029<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">2,825<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">64<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">21,918<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,853<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets', window );">Right-of-use assets</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>
<td class="nump">151<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(693)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(204)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Lease obligations</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>
<td class="num">(151)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</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>
<td class="num">(4,012)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities', window );">Debt</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>
<td class="num">(728)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(3,784)<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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>
<td class="nump">10,327<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="top.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">$ 19,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="nump">19,029<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_ShipTrackMember', window );">ShipTrack [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,905<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_ShipTrackMember', window );">ShipTrack [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">11,102<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_ShipTrackMember', window );">ShipTrack [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">77<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_ShipTrackMember', window );">ShipTrack [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">291<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_QuestawebMember', window );">QuestaWeb [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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">$ 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">35,860<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">17<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,877<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">714<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets', window );">Right-of-use assets</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="nump">123<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(170)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(736)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Lease obligations</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="num">(123)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(114)<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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="nump">21,691<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="top.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">$ 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">35,860<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</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="nump">78<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_QuestawebMember', window );">QuestaWeb [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,800<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_QuestawebMember', window );">QuestaWeb [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">8,900<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_QuestawebMember', window );">QuestaWeb [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_QuestawebMember', window );">QuestaWeb [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PortrixMember', window );">Portrix [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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">$ 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,188<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(54)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,134<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">810<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets', window );">Right-of-use assets</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="nump">374<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(871)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(499)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Lease obligations</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="num">(374)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</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="num">(5,185)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities', window );">Debt</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="num">(1,062)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(6,807)<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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="nump">15,032<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="top.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">$ 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,188<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PortrixMember', window );">Portrix [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,014<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PortrixMember', window );">Portrix [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">12,286<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PortrixMember', window );">Portrix [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">122<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PortrixMember', window );">Portrix [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">487<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_GreenmileMember', window );">GreenMile [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">29,230<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,339<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(308)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">32,261<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">2,186<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,498)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(909)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability', window );">Long-term income taxes 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(365)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</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="num">(752)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,007)<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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="nump">12,968<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">29,230<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</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="nump">89<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets', window );">Other long-term assets</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="nump">242<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_GreenmileMember', window );">GreenMile [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">5,700<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_GreenmileMember', window );">GreenMile [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">14,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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_GreenmileMember', window );">GreenMile [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_GreenmileMember', window );">GreenMile [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2021AcquisitionsMember', window );">The 2021 Acquisitions [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">48,403<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationConsiderationTransferredPayable', window );">Consideration 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,239<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(65)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,677<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">2,807<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets', window );">Right-of-use assets</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>
<td class="nump">151<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,543)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,054)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Lease obligations</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>
<td class="num">(151)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</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>
<td class="num">(5,627)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities', window );">Debt</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>
<td class="num">(728)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(7,145)<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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>
<td class="nump">28,970<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">48,403<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2021AcquisitionsMember', window );">The 2021 Acquisitions [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">8,336<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2021AcquisitionsMember', window );">The 2021 Acquisitions [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">21,753<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2021AcquisitionsMember', window );">The 2021 Acquisitions [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">107<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2021AcquisitionsMember', window );">The 2021 Acquisitions [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 656<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_VisualComplianceMember', window );">Visual Compliance [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 248,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">239,863<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,147<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">250,055<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">6,403<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets', window );">Right-of-use assets</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,188<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(840)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(10,267)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Lease obligations</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>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,188)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</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>
<td class="text">&#160;<span></span>
</td>
<td class="num">(282)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,968<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">118,785<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 248,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">239,863<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable', window );">Common shares issued</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,045<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets', window );">Deferred income tax asset</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30,924<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_VisualComplianceMember', window );">Visual Compliance [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">32,186<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_VisualComplianceMember', window );">Visual Compliance [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">69,422<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_VisualComplianceMember', window );">Visual Compliance [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">528<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_VisualComplianceMember', window );">Visual Compliance [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,166<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_CoreTransportTechnologiesNzLimitedMember', window );">Core Transport Technologies NZ Limited [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 21,800<span></span>
</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">21,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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,450<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">62<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,345<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">689<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets', window );">Right-of-use assets</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">68<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(352)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(278)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Lease obligations</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>
<td class="text">&#160;<span></span>
</td>
<td class="num">(68)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</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>
<td class="text">&#160;<span></span>
</td>
<td class="num">(3,332)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,225)<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,670<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 21,800<span></span>
</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">21,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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,048<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_CoreTransportTechnologiesNzLimitedMember', window );">Core Transport Technologies NZ Limited [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,600<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_CoreTransportTechnologiesNzLimitedMember', window );">Core Transport Technologies NZ Limited [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">6,800<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_CoreTransportTechnologiesNzLimitedMember', window );">Core Transport Technologies NZ Limited [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_CoreTransportTechnologiesNzLimitedMember', window );">Core Transport Technologies NZ Limited [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">300<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_StepcomMember', window );">STEPcom [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="nump">$ 18,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="nump">18,639<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">250<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">18,889<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,470<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets', window );">Right-of-use assets</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">232<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(874)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(813)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Lease obligations</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>
<td class="text">&#160;<span></span>
</td>
<td class="num">(232)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</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>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,316)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,276)<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,019<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="top.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="text">&#160;<span></span>
</td>
<td class="nump">$ 18,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="nump">18,639<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_StepcomMember', window );">STEPcom [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,839<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_StepcomMember', window );">STEPcom [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">102<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_StepcomMember', window );">STEPcom [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">205<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_BesttransportMember', window );">BestTransport [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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">$ 11,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="nump">11,718<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">11,718<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">815<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets', window );">Right-of-use assets</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">194<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(284)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(9)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Lease obligations</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>
<td class="text">&#160;<span></span>
</td>
<td class="num">(194)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</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>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,352)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(795)<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,513<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="top.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">$ 11,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="nump">11,718<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">35<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_BesttransportMember', window );">BestTransport [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_BesttransportMember', window );">BestTransport [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,800<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_BesttransportMember', window );">BestTransport [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">50<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_BesttransportMember', window );">BestTransport [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">150<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2020AcquisitionsMember', window );">The 2020 Acquisitions [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">292,053<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,450<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,459<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">304,007<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,377<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets', window );">Right-of-use assets</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,682<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,350)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(11,367)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Lease obligations</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>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,682)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</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>
<td class="text">&#160;<span></span>
</td>
<td class="num">(7,282)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">21,672<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">146,987<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">292,053<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable', window );">Common shares issued</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,045<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,370<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets', window );">Deferred income tax asset</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>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30,924<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2020AcquisitionsMember', window );">The 2020 Acquisitions [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">50,625<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2020AcquisitionsMember', window );">The 2020 Acquisitions [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">80,022<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2020AcquisitionsMember', window );">The 2020 Acquisitions [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">880<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2020AcquisitionsMember', window );">The 2020 Acquisitions [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,821<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2022AcquisitionsMember', window );">The 2022 Acquisitions [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</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">90,278<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,339<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="top.Show.showAR( this, 'defref_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments (receivable) / 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(345)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">93,272<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,710<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets', window );">Right-of-use assets</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="nump">497<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,539)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,144)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability', window );">Long-term income taxes 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(365)<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="top.Show.showAR( this, 'defref_dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation', window );">Lease obligations</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="num">(497)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liability</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="num">(5,937)<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities', window );">Debt</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="num">(1,062)<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(7,928)<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</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="nump">49,691<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="top.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="text">&#160;<span></span>
</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">90,278<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</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="nump">167<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets', window );">Other long-term assets</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="nump">242<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2022AcquisitionsMember', window );">The 2022 Acquisitions [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">14,514<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2022AcquisitionsMember', window );">The 2022 Acquisitions [Member] | Existing Technology [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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,186<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2022AcquisitionsMember', window );">The 2022 Acquisitions [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">322<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_The2022AcquisitionsMember', window );">The 2022 Acquisitions [Member] | 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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,487<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_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Business acquisition cost of acquired entity working capital adjustments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationConsiderationTransferredPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities incurred by the acquirer as part of consideration payable transferred in a business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationConsiderationTransferredPayable</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_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease obligation assumed in business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of long term income tax liability attributable to taxable temporary differences assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of right-of-use assets acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets</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_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of equity interests of the acquirer, including instruments or interests issued or issuable in consideration for the business combination.</p></div>
<a href="javascript:void(0);" onclick="top.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 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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of financial liabilities assumed (as defined) which have been recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of property, plant, and equipment recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_PeoplevoxMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_PeoplevoxMember</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_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_KontainersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_KontainersMember</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_BusinessAcquisitionAxis=dsgx_ShipTrackMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ShipTrackMember</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_QuestawebMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_The2021AcquisitionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_The2021AcquisitionsMember</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_VisualComplianceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_VisualComplianceMember</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_CoreTransportTechnologiesNzLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_CoreTransportTechnologiesNzLimitedMember</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_StepcomMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StepcomMember</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_BesttransportMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_BesttransportMember</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_The2020AcquisitionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_The2020AcquisitionsMember</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_The2022AcquisitionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_The2022AcquisitionsMember</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>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647953403496">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PeoplevoxMember', window );">Peoplevox [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,634<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_KontainersMember', window );">Kontainers [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_ShipTrackMember', window );">ShipTrack [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_QuestawebMember', window );">QuestaWeb [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="nump">$ 2,097<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PortrixMember', window );">Portrix [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="nump">200<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_GreenmileMember', window );">GreenMile [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="nump">$ 1,552<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_VisualComplianceMember', window );">Visual Compliance [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 170<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_CoreTransportTechnologiesNzLimitedMember', window );">Core Transport Technologies NZ Limited [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">213<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_StepcomMember', window );">STEPcom [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,700<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_BesttransportMember', window );">BestTransport [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 507<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_CashAcquiredFromAcquisition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_PeoplevoxMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_PeoplevoxMember</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_KontainersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_KontainersMember</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_ShipTrackMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ShipTrackMember</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_QuestawebMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_VisualComplianceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_VisualComplianceMember</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_CoreTransportTechnologiesNzLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_CoreTransportTechnologiesNzLimitedMember</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_StepcomMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StepcomMember</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_BesttransportMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_BesttransportMember</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>75
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647959603096">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Peoplevox [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Kontainers [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">12 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | ShipTrack [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">13 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | QuestaWeb [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Portrix [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | GreenMile [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Visual Compliance [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">14 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Core Transport Technologies NZ Limited [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | STEPcom [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">9 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | BestTransport [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">12 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | Peoplevox [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | Kontainers [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | ShipTrack [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | QuestaWeb [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | Portrix [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | GreenMile [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | Visual Compliance [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">7 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | Core Transport Technologies NZ Limited [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | BestTransport [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Kontainers [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | ShipTrack [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | QuestaWeb [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">3 years<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Portrix [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">3 years<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | GreenMile [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">3 years<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Visual Compliance [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Core Transport Technologies NZ Limited [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">8 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | STEPcom [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | BestTransport [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Peoplevox [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Kontainers [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | ShipTrack [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | QuestaWeb [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Portrix [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | GreenMile [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Visual Compliance [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Core Transport Technologies NZ Limited [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | STEPcom [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | BestTransport [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 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_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_PeoplevoxMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_PeoplevoxMember</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_KontainersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_KontainersMember</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_ShipTrackMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ShipTrackMember</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_QuestawebMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_VisualComplianceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_VisualComplianceMember</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_CoreTransportTechnologiesNzLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_CoreTransportTechnologiesNzLimitedMember</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_StepcomMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StepcomMember</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_BesttransportMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_BesttransportMember</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>76
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958578888">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaRevenue', window );">Revenues</a></td>
<td class="nump">$ 429,531<span></span>
</td>
<td class="nump">$ 369,271<span></span>
</td>
<td class="nump">$ 354,484<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 85,549<span></span>
</td>
<td class="nump">$ 48,788<span></span>
</td>
<td class="nump">$ 30,933<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>EARNINGS PER SHARE (Note 16)</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 1.01<span></span>
</td>
<td class="nump">$ 0.58<span></span>
</td>
<td class="nump">$ 0.38<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.99<span></span>
</td>
<td class="nump">$ 0.57<span></span>
</td>
<td class="nump">$ 0.37<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>77
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958651240">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jan. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Jan. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2020 </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="top.Show.showAR( this, 'defref_dsgx_DerivativeInstrumentSharesOfCommonStockHeld', window );">Derivative Instrument, Shares of Common Stock Held (in shares) | shares</a></td>
<td class="nump">252,011<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="top.Show.showAR( this, 'defref_dsgx_DerivativeInstrumentCommonSharesHeldPerShare', window );">Derivative Instrument, Common Shares Held, Per Share (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 29.55<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="top.Show.showAR( this, 'defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputLongTermRevenueGrowthRateMember', window );">Measurement Input, Long-term Revenue Growth Rate [Member] | Minimum [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput', window );">Estimated fair value consideration percentage</a></td>
<td class="nump">11<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="top.Show.showAR( this, 'defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputLongTermRevenueGrowthRateMember', window );">Measurement Input, Long-term Revenue Growth Rate [Member] | Maximum [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="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="top.Show.showAR( this, 'defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember', window );">Measurement Input, Discount Rate [Member] | Minimum [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput', window );">Estimated fair value consideration percentage</a></td>
<td class="nump">11<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="top.Show.showAR( this, 'defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember', window );">Measurement Input, Discount Rate [Member] | Maximum [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="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="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeGainOnDerivative', window );">Derivative, Gain on Derivatives | $</a></td>
<td class="nump">$ 2.9<span></span>
</td>
<td class="nump">$ 3.4<span></span>
</td>
<td class="nump">$ 4.0<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_BusinessCombinationContingentConsiderationLiabilityMeasurementInput">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_DerivativeGainOnDerivative">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in the fair value of derivatives recognized in the income statement.</p></div>
<a href="javascript:void(0);" onclick="top.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 10<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5618551-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeGainOnDerivative</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_MeasurementInputTypeAxis=us-gaap_MeasurementInputLongTermRevenueGrowthRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>78
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647959420296">
<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>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Equity derivative contracts</a></td>
<td class="nump">$ 10,863<span></span>
</td>
<td class="nump">$ 8,001<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="nump">12,990<span></span>
</td>
<td class="nump">4,671<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Equity derivative contracts</a></td>
<td class="nump">10,863<span></span>
</td>
<td class="nump">8,001<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="nump">$ 12,990<span></span>
</td>
<td class="nump">$ 4,671<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>79
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958651384">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements - Changes in fair value measurements (Details) - Level 3 - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 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="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at the beginning</a></td>
<td class="nump">$ 4,671<span></span>
</td>
<td class="nump">$ 1,924<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="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases', window );">Increase from acquisitions</a></td>
<td class="nump">3,339<span></span>
</td>
<td class="nump">4,239<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="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements', window );">Cash payments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(95)<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="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings', window );">Charges through profit or loss</a></td>
<td class="nump">5,070<span></span>
</td>
<td class="num">(1,731)<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="top.Show.showAR( this, 'defref_dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="num">(90)<span></span>
</td>
<td class="nump">334<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="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at the end</a></td>
<td class="nump">$ 12,990<span></span>
</td>
<td class="nump">$ 4,671<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>80
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956211224">
<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>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableGrossCurrent', window );">Trade accounts receivable</a></td>
<td class="nump">$ 43,565<span></span>
</td>
<td class="nump">$ 39,536<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="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Less: Provision for credit losses</a></td>
<td class="num">(1,860)<span></span>
</td>
<td class="num">(2,330)<span></span>
</td>
<td class="num">$ (2,003)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts Receivable, after Allowance for Credit Loss, Current, Total</a></td>
<td class="nump">$ 41,705<span></span>
</td>
<td class="nump">$ 37,206<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_AccountsReceivableGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647957048728">
<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="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnbilledReceivablesCurrent', window );">Unbilled Receivables, Current</a></td>
<td class="nump">$ 0.5<span></span>
</td>
<td class="nump">$ 0.3<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="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represent of percentage item</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_UnbilledReceivablesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>82
<FILENAME>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647959918568">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Trade Accounts Receivable - Provision for Credit Losses (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Balance</a></td>
<td class="nump">$ 2,330<span></span>
</td>
<td class="nump">$ 2,003<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="top.Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Current period provision for expected losses</a></td>
<td class="nump">1,007<span></span>
</td>
<td class="nump">1,681<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="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Write-offs charged against the provision</a></td>
<td class="num">(1,456)<span></span>
</td>
<td class="num">(1,418)<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="top.Show.showAR( this, 'defref_dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="num">(21)<span></span>
</td>
<td class="nump">64<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="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Balance</a></td>
<td class="nump">$ 1,860<span></span>
</td>
<td class="nump">$ 2,330<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>83
<FILENAME>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647957067608">
<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>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions', window );">Net working capital adjustments receivable from acquisitions</a></td>
<td class="nump">$ 309<span></span>
</td>
<td class="nump">$ 237<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="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsCurrent', window );">Other receivables</a></td>
<td class="nump">13,766<span></span>
</td>
<td class="nump">14,593<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherReceivablesNetCurrent', window );">Other Receivables, Net, Current, Total</a></td>
<td class="nump">$ 14,075<span></span>
</td>
<td class="nump">$ 14,830<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Net working capital adjustments receivable from acquisitions.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_us-gaap_OtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>84
<FILENAME>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958303320">
<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>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_AmountsRecoverableFromFundsHeldInEscrow', window );">Amounts Recoverable from Funds Held in Escrow</a></td>
<td class="nump">$ 0.3<span></span>
</td>
<td class="nump">$ 0.2<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647959902376">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Property and Equipment - Property and Equipment (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">$ 45,471<span></span>
</td>
<td class="nump">$ 42,422<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="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Accumulated amortization</a></td>
<td class="nump">34,654<span></span>
</td>
<td class="nump">30,333<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Net</a></td>
<td class="nump">10,817<span></span>
</td>
<td class="nump">12,089<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember', window );">Computer Equipment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">40,937<span></span>
</td>
<td class="nump">37,469<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="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Accumulated amortization</a></td>
<td class="nump">31,660<span></span>
</td>
<td class="nump">28,123<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and Fixtures [Member]</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">1,553<span></span>
</td>
<td class="nump">1,494<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="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Accumulated amortization</a></td>
<td class="nump">1,257<span></span>
</td>
<td class="nump">1,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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">822<span></span>
</td>
<td class="nump">807<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="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Accumulated amortization</a></td>
<td class="nump">531<span></span>
</td>
<td class="nump">401<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=dsgx_EquipmentInstalledWithCustomersMember', window );">Equipment Installed With Customers [Member]</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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">1,635<span></span>
</td>
<td class="nump">1,654<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="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Accumulated amortization</a></td>
<td class="nump">1,206<span></span>
</td>
<td class="nump">728<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_AssetUnderConstructionMember', window );">Asset under Construction [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">$ 524<span></span>
</td>
<td class="nump">$ 998<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>86
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647959906440">
<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>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">$ 599,157<span></span>
</td>
<td class="nump">$ 555,423<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">369,548<span></span>
</td>
<td class="nump">315,431<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Intangible assets. net</a></td>
<td class="nump">229,609<span></span>
</td>
<td class="nump">239,992<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">251,402<span></span>
</td>
<td class="nump">240,479<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">135,380<span></span>
</td>
<td class="nump">119,361<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">326,411<span></span>
</td>
<td class="nump">295,161<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">218,953<span></span>
</td>
<td class="nump">183,539<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">9,038<span></span>
</td>
<td class="nump">8,844<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">6,677<span></span>
</td>
<td class="nump">5,996<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">12,306<span></span>
</td>
<td class="nump">10,939<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">$ 8,538<span></span>
</td>
<td class="nump">$ 6,535<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>87
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647962483976">
<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>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Finite-Lived Intangible Assets, Net, Ending Balance</a></td>
<td class="nump">$ 229,609<span></span>
</td>
<td class="nump">$ 239,992<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">Finite-Lived Intangible Asset, Expected Amortization, Year One</a></td>
<td class="nump">53,400<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">Finite-Lived Intangible Asset, Expected Amortization, Year Two</a></td>
<td class="nump">41,200<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">Finite-Lived Intangible Asset, Expected Amortization, Year Three</a></td>
<td class="nump">38,400<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">Finite-Lived Intangible Asset, Expected Amortization, Year Four</a></td>
<td class="nump">34,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">Finite-Lived Intangible Asset, Expected Amortization, Year Five</a></td>
<td class="nump">19,300<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Finite-Lived Intangible Asset, Expected Amortization, after Year Five</a></td>
<td class="nump">$ 43,200<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_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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 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).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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 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).</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<FILENAME>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647953323208">
<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="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="nump">$ 565,177<span></span>
</td>
<td class="nump">$ 523,690<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="top.Show.showAR( this, 'defref_us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments', window );">Adjustments on account of foreign exchange</a></td>
<td class="num">(6,107)<span></span>
</td>
<td class="nump">12,517<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="top.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="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_VisualComplianceMember', window );">Visual Compliance [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">118,785<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_CoreTransportTechnologiesNzLimitedMember', window );">Core Transport Technologies NZ Limited [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,670<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_StepcomMember', window );">STEPcom [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,019<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_BesttransportMember', window );">BestTransport [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,513<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PeoplevoxMember', window );">Peoplevox [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="nump">15,182<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="top.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,182<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,182<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_KontainersMember', window );">Kontainers [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="nump">3,461<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="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,461<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,461<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_ShipTrackMember', window );">ShipTrack [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="nump">10,327<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="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,327<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,327<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_QuestawebMember', window );">QuestaWeb [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="nump">21,691<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="nump">21,691<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_PortrixMember', window );">Portrix [Member]</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="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="nump">15,032<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="nump">15,032<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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_GreenmileMember', window );">GreenMile [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="nump">12,968<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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance</a></td>
<td class="nump">$ 12,968<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_GoodwillTranslationAndPurchaseAccountingAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_VisualComplianceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_VisualComplianceMember</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_CoreTransportTechnologiesNzLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_CoreTransportTechnologiesNzLimitedMember</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_StepcomMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StepcomMember</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_BesttransportMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_BesttransportMember</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_PeoplevoxMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_PeoplevoxMember</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_KontainersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_KontainersMember</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_ShipTrackMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ShipTrackMember</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_QuestawebMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>89
<FILENAME>R69.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956242616">
<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>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeRelatedLiabilitiesCurrent', window );">Accrued compensation and benefits</a></td>
<td class="nump">$ 32,169<span></span>
</td>
<td class="nump">$ 24,643<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="top.Show.showAR( this, 'defref_us-gaap_AccruedProfessionalFeesCurrent', window );">Accrued professional fees</a></td>
<td class="nump">1,318<span></span>
</td>
<td class="nump">1,188<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="top.Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrent', window );">Other accrued liabilities</a></td>
<td class="nump">22,955<span></span>
</td>
<td class="nump">13,048<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued Liabilities, Current, Total</a></td>
<td class="nump">$ 56,442<span></span>
</td>
<td class="nump">$ 38,879<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_AccruedProfessionalFeesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>90
<FILENAME>R70.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647949500344">
<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">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember', window );">Revolving Operating Credit Facility [Member] | Senior Secured Credit Facility [Member] | Maximum [Member]</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="top.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="top.Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember', window );">Revolving Operating Credit Facility [Member] | Senior Secured Credit Facility [Member] | Minimum [Member]</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="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior Secured Credit Facility [Member] | Maximum [Member]</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="top.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="top.Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior Secured Credit Facility [Member] | Maximum [Member] | 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior Secured Credit Facility [Member] | Minimum [Member]</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="top.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="top.Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior Secured Credit Facility [Member] | Minimum [Member] | 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DebtInstrumentTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>91
<FILENAME>R71.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958301192">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases (Details)<br></strong></div></th>
<th class="th"><div>Jan. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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_LesseeOperatingLeaseRemainingLeaseTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>92
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647949385816">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseCost', window );">Operating lease cost</a></td>
<td class="nump">$ 4,466<span></span>
</td>
<td class="nump">$ 4,590<span></span>
</td>
<td class="nump">$ 4,902<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="top.Show.showAR( this, 'defref_us-gaap_ShortTermLeaseCost', window );">Short-term lease cost</a></td>
<td class="nump">432<span></span>
</td>
<td class="nump">502<span></span>
</td>
<td class="nump">866<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseCost', window );">Total operating lease cost</a></td>
<td class="nump">4,898<span></span>
</td>
<td class="nump">5,092<span></span>
</td>
<td class="nump">5,768<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="top.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">4,857<span></span>
</td>
<td class="nump">4,831<span></span>
</td>
<td class="nump">4,150<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="top.Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">New ROU assets obtained in exchange for lease obligations</a></td>
<td class="nump">$ 2,548<span></span>
</td>
<td class="nump">$ 2,337<span></span>
</td>
<td class="nump">$ 6,439<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted average remaining lease term (years) (Year)</a></td>
<td class="text">3 years 3 months 18 days<span></span>
</td>
<td class="text">3 years 9 months 18 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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted average discount rate (%)</a></td>
<td class="nump">2.10%<span></span>
</td>
<td class="nump">2.50%<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_LeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_OperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>93
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647953381208">
<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>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2023</a></td>
<td class="nump">$ 4,349<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2024</a></td>
<td class="nump">3,526<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2025</a></td>
<td class="nump">2,429<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2026</a></td>
<td class="nump">1,131<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2027</a></td>
<td class="nump">322<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">2028 and thereafter</a></td>
<td class="nump">186<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total lease payments</a></td>
<td class="nump">11,943<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: imputed interest</a></td>
<td class="num">(532)<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Total lease obligations</a></td>
<td class="nump">11,411<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Current</a></td>
<td class="nump">4,029<span></span>
</td>
<td class="nump">$ 4,168<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-term</a></td>
<td class="nump">$ 7,382<span></span>
</td>
<td class="nump">$ 8,895<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_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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 (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid 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).</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<FILENAME>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956518856">
<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">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized', window );">Deferred Share Units Nonvested Total Compensation Cost Not Yet Recognized</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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,000<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="top.Show.showAR( this, 'defref_dsgx_DerivativeInstrumentSharesOfCommonStockHeld', window );">Derivative Instrument, Shares of Common Stock Held (in shares)</a></td>
<td class="nump">252,011<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="top.Show.showAR( this, 'defref_dsgx_DeferredShareUnitLiabilityNumberOfCommonShares', window );">Deferred Share Unit Liability, Number of Common Shares (in shares)</a></td>
<td class="nump">252,011<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Business Combination, Contingent Consideration, Liability, Total</a></td>
<td class="nump">$ 12,990<span></span>
</td>
<td class="nump">$ 4,671<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_COREKontainersAndShipTrackMember', window );">CORE, Kontainers and ShipTrack [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</a></td>
<td class="nump">$ 35,600<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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Business Combination, Contingent Consideration, Liability, Total</a></td>
<td class="nump">$ 13,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_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_BusinessAcquisitionAxis=dsgx_COREKontainersAndShipTrackMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_COREKontainersAndShipTrackMember</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>95
<FILENAME>R75.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956518280">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 16, 2020</div></th>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="nump">6,900,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from Stock Options Exercised</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2.7<span></span>
</td>
<td class="nump">$ 6.2<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="top.Show.showAR( this, 'defref_us-gaap_SubsidiarySaleOfStockAxis=dsgx_The2020BaseShelfProspectusMember', window );">The 2020 Base Shelf Prospectus [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="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_ShelfProspectusMaximumAmount', window );">Shelf Prospectus, Maximum Amount</a></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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
</table>
<div style="display: none;">
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The maximum amount related to the shelf prospectus.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The duration of the shelf prospectus.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><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_SubsidiarySaleOfStockAxis=dsgx_The2020BaseShelfProspectusMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>96
<FILENAME>R76.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647935024680">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share Capital - Common Shares Outstanding (Details) - shares<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Feb. 12, 2019</div></th>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Balance, beginning of year (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">84,494,000<span></span>
</td>
<td class="nump">84,156,000<span></span>
</td>
<td class="nump">76,865,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised', window );">Stock options and share units exercised (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">262,000<span></span>
</td>
<td class="nump">338,000<span></span>
</td>
<td class="nump">95,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="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Issuance of common shares (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,900,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Balance, end of year (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">84,756,210<span></span>
</td>
<td class="nump">84,494,000<span></span>
</td>
<td class="nump">84,156,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=dsgx_VisualComplianceMember', window );">Visual Compliance [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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued', window );">Acquisitions (Note 3) (in shares)</a></td>
<td class="nump">300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">296,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of shares issued from the exercise of stock options and share units.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised</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_us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares of equity interests issued or issuable to acquire entity.</p></div>
<a href="javascript:void(0);" onclick="top.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 (b)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued</td>
</tr>
<tr>
<td style="padding-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_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><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_BusinessAcquisitionAxis=dsgx_VisualComplianceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_VisualComplianceMember</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>97
<FILENAME>R77.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140648052596648">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">1,000<span></span>
</td>
<td class="nump">71,161<span></span>
</td>
<td class="nump">5,909<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">267,236<span></span>
</td>
<td class="nump">1,750<span></span>
</td>
<td class="nump">350,464<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">0<span></span>
</td>
<td class="nump">43,002<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>98
<FILENAME>R78.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956511560">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 86,282<span></span>
</td>
<td class="nump">$ 52,100<span></span>
</td>
<td class="nump">$ 36,997<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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted average shares outstanding (in shares)</a></td>
<td class="nump">84,591<span></span>
</td>
<td class="nump">84,360<span></span>
</td>
<td class="nump">81,659<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="top.Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Dilutive effect of employee stock options (in shares)</a></td>
<td class="nump">482<span></span>
</td>
<td class="nump">358<span></span>
</td>
<td class="nump">318<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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted average common and common equivalent shares outstanding (in shares)</a></td>
<td class="nump">86,200<span></span>
</td>
<td class="nump">85,756<span></span>
</td>
<td class="nump">82,867<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>EARNINGS PER SHARE (Note 16)</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 1.02<span></span>
</td>
<td class="nump">$ 0.62<span></span>
</td>
<td class="nump">$ 0.45<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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 1.00<span></span>
</td>
<td class="nump">$ 0.61<span></span>
</td>
<td class="nump">$ 0.45<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Dilutive effect of employee stock options (in shares)</a></td>
<td class="nump">1,127<span></span>
</td>
<td class="nump">1,038<span></span>
</td>
<td class="nump">890<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>99
<FILENAME>R79.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647934859240">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation Plans - Additional information (Details) - USD ($)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 0.7<span></span>
</td>
<td class="nump">$ 0.7<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="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions', window );">Share-based Payment Arrangement, Exercise of Option, Tax Benefit</a></td>
<td class="nump">$ 0.1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.1<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="top.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,319,279<span></span>
</td>
<td class="nump">1,147,720<span></span>
</td>
<td class="nump">1,127,822<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="top.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">271,025<span></span>
</td>
<td class="nump">381,859<span></span>
</td>
<td class="nump">367,173<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="top.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="nump">$ 16.77<span></span>
</td>
<td class="nump">$ 10.19<span></span>
</td>
<td class="nump">$ 8.99<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="top.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">$ 3.7<span></span>
</td>
<td class="nump">$ 10.8<span></span>
</td>
<td class="nump">$ 2.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="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 6.1<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="top.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">2 years 7 months 6 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 3.4<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="top.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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 6.7<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="top.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">1 year 1 month 6 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 3.6<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="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 3.2<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="top.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">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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 2.6<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="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=dsgx_ShareholderapprovedStockOptionPlanMember', window );">Shareholder-Approved Stock Option 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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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,319,279<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="top.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">271,025<span></span>
</td>
<td class="nump">381,859<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="top.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="nump">$ 16.77<span></span>
</td>
<td class="nump">$ 10.19<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="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=dsgx_ShareholderapprovedStockOptionPlanMember', window );">Shareholder-Approved Stock Option Plan [Member] | 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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">3,041,719<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="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 0.0<span></span>
</td>
<td class="nump">$ 0.0<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="top.Show.showAR( this, 'defref_dsgx_DeferredShareUnitsOutstandingNumber', window );">Deferred Share Units Outstanding Number (in shares)</a></td>
<td class="nump">252,011<span></span>
</td>
<td class="nump">226,525<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="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent', window );">Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent</a></td>
<td class="nump">$ 18.3<span></span>
</td>
<td class="nump">$ 13.8<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="top.Show.showAR( this, 'defref_dsgx_DeferredShareUnitsGrantsInPeriod', window );">Deferred Share Units Grants In Period (in shares)</a></td>
<td class="nump">25,486<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="top.Show.showAR( this, 'defref_dsgx_DeferredShareUnitsRedeemedAndSettledInCash', window );">Deferred Share Units Redeemed and Settled in Cash (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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_DeferredShareUnitsCompensationExpense', window );">Deferred Share Units Compensation Expense</a></td>
<td class="nump">$ 4.5<span></span>
</td>
<td class="nump">4.6<span></span>
</td>
<td class="nump">5.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="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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.0<span></span>
</td>
<td class="nump">1.5<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="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent', window );">Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent</a></td>
<td class="nump">0.8<span></span>
</td>
<td class="nump">0.9<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="top.Show.showAR( this, 'defref_dsgx_CashSettledRestrictedShareUnitsCompensationExpense', window );">Cash Settled Restricted Share Units Compensation Expense</a></td>
<td class="nump">$ 1.3<span></span>
</td>
<td class="nump">$ 1.1<span></span>
</td>
<td class="nump">$ 0.9<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash settled restricted share units compensation expense.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The deferred share units compensation expense.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of deferred share units granted in period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_dsgx_DeferredShareUnitsRedeemedAndSettledInCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of deferred share units redeemed and settled in cash.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DeferredShareUnitsRedeemedAndSettledInCash</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_us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.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 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ShareholderapprovedStockOptionPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ShareholderapprovedStockOptionPlanMember</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>100
<FILENAME>R80.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956873688">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">$ 11,017<span></span>
</td>
<td class="nump">$ 6,313<span></span>
</td>
<td class="nump">$ 4,909<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">732<span></span>
</td>
<td class="nump">319<span></span>
</td>
<td class="nump">220<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">3,060<span></span>
</td>
<td class="nump">896<span></span>
</td>
<td class="nump">706<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">1,419<span></span>
</td>
<td class="nump">404<span></span>
</td>
<td class="nump">281<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">$ 5,806<span></span>
</td>
<td class="nump">$ 4,694<span></span>
</td>
<td class="nump">$ 3,702<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>101
<FILENAME>R81.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958279720">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility (%)</a></td>
<td class="nump">27.80%<span></span>
</td>
<td class="nump">26.40%<span></span>
</td>
<td class="nump">23.50%<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free rate (%)</a></td>
<td class="nump">0.70%<span></span>
</td>
<td class="nump">0.70%<span></span>
</td>
<td class="nump">1.40%<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="top.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>
<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>102
<FILENAME>R82.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647953273912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation Plans - Summary of Option Activity (Details) - USD ($)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of Stock Options Outstanding (in shares)</a></td>
<td class="nump">1,147,720<span></span>
</td>
<td class="nump">1,127,822<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted-Average Exercise Price (in dollars per share)</a></td>
<td class="nump">$ 33.77<span></span>
</td>
<td class="nump">$ 26.82<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Weighted-Average Remaining Contractual Life (Year)</a></td>
<td class="text">4 years 4 months 24 days<span></span>
</td>
<td class="text">4 years 10 months 24 days<span></span>
</td>
<td class="text">4 years 7 months 6 days<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Aggregate Intrinsic Value</a></td>
<td class="nump">$ 41.5<span></span>
</td>
<td class="nump">$ 28.1<span></span>
</td>
<td class="nump">$ 20.2<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted, shares (in shares)</a></td>
<td class="nump">271,025<span></span>
</td>
<td class="nump">381,859<span></span>
</td>
<td class="nump">367,173<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 65.03<span></span>
</td>
<td class="nump">$ 41.51<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="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised, shares (in shares)</a></td>
<td class="num">(90,166)<span></span>
</td>
<td class="num">(338,342)<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 29.38<span></span>
</td>
<td class="nump">$ 18.43<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod', window );">Forfeited, shares (in shares)</a></td>
<td class="num">(9,300)<span></span>
</td>
<td class="num">(23,619)<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice', window );">Forfeited, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 53.94<span></span>
</td>
<td class="nump">$ 33.88<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of Stock Options Outstanding (in shares)</a></td>
<td class="nump">1,319,279<span></span>
</td>
<td class="nump">1,147,720<span></span>
</td>
<td class="nump">1,127,822<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted-Average Exercise Price (in dollars per share)</a></td>
<td class="nump">$ 42.35<span></span>
</td>
<td class="nump">$ 33.77<span></span>
</td>
<td class="nump">$ 26.82<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested or expected to vest, shares (in shares)</a></td>
<td class="nump">1,319,279<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="top.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">$ 42.35<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="top.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 4 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 41.5<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable, shares (in shares)</a></td>
<td class="nump">856,426<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Exercisable, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 36.91<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Exercisable, weighted-average remaining contractual life (Year)</a></td>
<td class="text">3 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Exercisable, aggregate intrinsic value</a></td>
<td class="nump">$ 31.6<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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>103
<FILENAME>R83.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647953188392">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jan. 31, 2022 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price, Options Outstanding (in dollars per share)</a></td>
<td class="nump">$ 42.35<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Stock Options, Options Outstanding (in shares) | shares</a></td>
<td class="nump">1,319,279<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</a></td>
<td class="text">4 years 4 months 24 days<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1', window );">Weighted Average Exercise Price, Options Exercisable (in dollars per share)</a></td>
<td class="nump">$ 36.91<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions', window );">Number of Stock Options, Options Exercisable (in shares) | shares</a></td>
<td class="nump">856,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range1Member', window );">Range 1 [Member]</a></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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit', window );">Range of Exercise Prices, Lower Limit (in dollars per share)</a></td>
<td class="nump">$ 19.78<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Range of Exercise Prices, Upper Limit (in dollars per share)</a></td>
<td class="nump">23.86<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price, Options Outstanding (in dollars per share)</a></td>
<td class="nump">$ 22.55<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Stock Options, Options Outstanding (in shares) | shares</a></td>
<td class="nump">176,500<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</a></td>
<td class="text">1 year 10 months 24 days<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1', window );">Weighted Average Exercise Price, Options Exercisable (in dollars per share)</a></td>
<td class="nump">$ 22.55<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions', window );">Number of Stock Options, Options Exercisable (in shares) | shares</a></td>
<td class="nump">176,500<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range2Member', window );">Range 2 [Member]</a></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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit', window );">Range of Exercise Prices, Lower Limit (in dollars per share)</a></td>
<td class="nump">$ 27.39<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Range of Exercise Prices, Upper Limit (in dollars per share)</a></td>
<td class="nump">29.08<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price, Options Outstanding (in dollars per share)</a></td>
<td class="nump">$ 29.08<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Stock Options, Options Outstanding (in shares) | shares</a></td>
<td class="nump">191,754<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</a></td>
<td class="text">3 years 2 months 12 days<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1', window );">Weighted Average Exercise Price, Options Exercisable (in dollars per share)</a></td>
<td class="nump">$ 29.08<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions', window );">Number of Stock Options, Options Exercisable (in shares) | shares</a></td>
<td class="nump">176,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range3Member', window );">Range 3 [Member]</a></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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit', window );">Range of Exercise Prices, Lower Limit (in dollars per share)</a></td>
<td class="nump">$ 40.22<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Range of Exercise Prices, Upper Limit (in dollars per share)</a></td>
<td class="nump">52.38<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price, Options Outstanding (in dollars per share)</a></td>
<td class="nump">$ 40.69<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Stock Options, Options Outstanding (in shares) | shares</a></td>
<td class="nump">618,325<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</a></td>
<td class="text">4 years 8 months 12 days<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1', window );">Weighted Average Exercise Price, Options Exercisable (in dollars per share)</a></td>
<td class="nump">$ 40.60<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions', window );">Number of Stock Options, Options Exercisable (in shares) | shares</a></td>
<td class="nump">414,713<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range4Member', window );">Range 4 [Member]</a></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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit', window );">Range of Exercise Prices, Lower Limit (in dollars per share)</a></td>
<td class="nump">$ 56.63<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Range of Exercise Prices, Upper Limit (in dollars per share)</a></td>
<td class="nump">78.55<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price, Options Outstanding (in dollars per share)</a></td>
<td class="nump">$ 63.59<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Stock Options, Options Outstanding (in shares) | shares</a></td>
<td class="nump">332,700<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</a></td>
<td class="text">6 years 1 month 6 days<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1', window );">Weighted Average Exercise Price, Options Exercisable (in dollars per share)</a></td>
<td class="nump">$ 63.79<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions', window );">Number of Stock Options, Options Exercisable (in shares) | shares</a></td>
<td class="nump">88,796<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.</p></div>
<a href="javascript:void(0);" onclick="top.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 (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of shares reserved for issuance pertaining to the outstanding exercisable stock options as of the balance sheet date in the customized range of exercise prices for which the market and performance vesting condition has been satisfied.</p></div>
<a href="javascript:void(0);" onclick="top.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)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of shares reserved for issuance pertaining to the outstanding stock options as of the balance sheet date for all option plans in the customized range of exercise prices.</p></div>
<a href="javascript:void(0);" onclick="top.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)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.</p></div>
<a href="javascript:void(0);" onclick="top.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 (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit</td>
</tr>
<tr>
<td style="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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average exercise price as of the balance sheet date for those equity-based payment arrangements exercisable and outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1</td>
</tr>
<tr>
<td style="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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average price as of the balance sheet date at which grantees could acquire the underlying shares with respect to all outstanding stock options which are in the customized range of exercise prices.</p></div>
<a href="javascript:void(0);" onclick="top.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)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term of outstanding stock options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range1Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range1Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range2Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range3Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range3Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range4Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=dsgx_Range4Member</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>104
<FILENAME>R84.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647952895336">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">271,025<span></span>
</td>
<td class="nump">381,859<span></span>
</td>
<td class="nump">367,173<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="top.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="nump">$ 16.77<span></span>
</td>
<td class="nump">$ 10.19<span></span>
</td>
<td class="nump">$ 8.99<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=dsgx_ShareholderapprovedStockOptionPlanMember', window );">Shareholder-Approved Stock Option 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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares', window );">Stock Options Outstanding (in shares)</a></td>
<td class="nump">501,655<span></span>
</td>
<td class="nump">409,653<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</a></td>
<td class="nump">$ 9.52<span></span>
</td>
<td class="nump">$ 8.03<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="top.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">271,025<span></span>
</td>
<td class="nump">381,859<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="top.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="nump">$ 16.77<span></span>
</td>
<td class="nump">$ 10.19<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares', window );">Vested (in shares)</a></td>
<td class="num">(300,527)<span></span>
</td>
<td class="num">(266,238)<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="top.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="nump">$ 11.42<span></span>
</td>
<td class="nump">$ 8.19<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares', window );">Forfeited (in shares)</a></td>
<td class="num">(9,300)<span></span>
</td>
<td class="num">(23,619)<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue', window );">Forfeited, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</a></td>
<td class="nump">$ 13.54<span></span>
</td>
<td class="nump">$ 4.87<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares', window );">Stock Options Outstanding (in shares)</a></td>
<td class="nump">462,853<span></span>
</td>
<td class="nump">501,655<span></span>
</td>
<td class="nump">409,653<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</a></td>
<td class="nump">$ 13.16<span></span>
</td>
<td class="nump">$ 9.52<span></span>
</td>
<td class="nump">$ 8.03<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of non-vested options outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of non-vested options forfeited.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average grant-date fair value of non-vested options forfeited.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average grant-date fair value of non-vested options outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of options vested.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average grant-date fair value of options vested.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_PlanNameAxis=dsgx_ShareholderapprovedStockOptionPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ShareholderapprovedStockOptionPlanMember</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>105
<FILENAME>R85.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647953203224">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested or expected to vest, shares (in shares)</a></td>
<td class="nump">1,319,279<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="top.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">$ 42.35<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="top.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 4 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 41.5<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="top.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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Number of Units Outstanding (in shares)</a></td>
<td class="nump">755,873<span></span>
</td>
<td class="nump">629,874<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted-Average Grant Date Fair Value, PSU (in dollars per share)</a></td>
<td class="nump">$ 25.17<span></span>
</td>
<td class="nump">$ 21.19<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="top.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">4 years 8 months 12 days<span></span>
</td>
<td class="text">5 years<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding', window );">Aggregate Intrinsic Value, PSU</a></td>
<td class="nump">$ 57.4<span></span>
</td>
<td class="nump">$ 44.0<span></span>
</td>
<td class="nump">$ 28.2<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of PSUs Granted (in shares)</a></td>
<td class="nump">77,441<span></span>
</td>
<td class="nump">85,334<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="top.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">$ 88.11<span></span>
</td>
<td class="nump">$ 54.24<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod', window );">Performance units issued (in shares)</a></td>
<td class="nump">44,296<span></span>
</td>
<td class="nump">40,665<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="top.Show.showAR( this, 'defref_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue', window );">Performance units issued, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 36.63<span></span>
</td>
<td class="nump">$ 29.08<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Exercised (in shares)</a></td>
<td class="num">(100,072)<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Exercised (in dollars per share)</a></td>
<td class="nump">$ 9.66<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Number of Units Outstanding (in shares)</a></td>
<td class="nump">777,538<span></span>
</td>
<td class="nump">755,873<span></span>
</td>
<td class="nump">629,874<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted-Average Grant Date Fair Value, PSU (in dollars per share)</a></td>
<td class="nump">$ 35.76<span></span>
</td>
<td class="nump">$ 25.17<span></span>
</td>
<td class="nump">$ 21.19<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested or expected to vest, shares (in shares)</a></td>
<td class="nump">777,538<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="top.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">$ 35.76<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="top.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 9 months 18 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 57.4<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="top.Show.showAR( this, 'defref_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable', window );">Exercisable, number of units (in shares)</a></td>
<td class="nump">561,034<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="top.Show.showAR( this, 'defref_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue', window );">Exercisable, PSU weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 23.15<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="top.Show.showAR( this, 'defref_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm', window );">Exercisable, Weighted-Average Remaining Contractual, PSU (Year)</a></td>
<td class="text">3 years 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable', window );">Exercisable, Aggregate Intrinsic Value, PSU</a></td>
<td class="nump">$ 41.4<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.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)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.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)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>106
<FILENAME>R86.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647934977656">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 42.35<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="top.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 4 months 24 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 41.5<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="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Number of Units Outstanding (in shares)</a></td>
<td class="nump">432,195<span></span>
</td>
<td class="nump">374,677<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted-Average Grant Date Fair Value, PSU (in dollars per share)</a></td>
<td class="nump">$ 19.98<span></span>
</td>
<td class="nump">$ 16.57<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms', window );">Weighted-Average Remaining Contractual, PSU (Year)</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">4 years 8 months 12 days<span></span>
</td>
<td class="text">5 years<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding', window );">Aggregate Intrinsic Value, PSU</a></td>
<td class="nump">$ 30.3<span></span>
</td>
<td class="nump">$ 25.2<span></span>
</td>
<td class="nump">$ 16.8<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of PSUs Granted (in shares)</a></td>
<td class="nump">50,099<span></span>
</td>
<td class="nump">57,518<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="top.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">$ 65.33<span></span>
</td>
<td class="nump">$ 43.25<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Exercised (in shares)</a></td>
<td class="num">(71,314)<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Exercised (in dollars per share)</a></td>
<td class="nump">$ 7.14<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Number of Units Outstanding (in shares)</a></td>
<td class="nump">410,980<span></span>
</td>
<td class="nump">432,195<span></span>
</td>
<td class="nump">374,677<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted-Average Grant Date Fair Value, PSU (in dollars per share)</a></td>
<td class="nump">$ 29.17<span></span>
</td>
<td class="nump">$ 19.98<span></span>
</td>
<td class="nump">$ 16.57<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber', window );">Vested or expected to vest, RSU (in shares)</a></td>
<td class="nump">410,980<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="top.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">$ 29.17<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="top.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<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 30.3<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="top.Show.showAR( this, 'defref_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable', window );">Exercisable, number of units (in shares)</a></td>
<td class="nump">355,765<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="top.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.62<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="top.Show.showAR( this, 'defref_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm', window );">Exercisable, Weighted-Average Remaining Contractual, PSU (Year)</a></td>
<td class="text">4 years 4 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable', window );">Exercisable, Aggregate Intrinsic Value, PSU</a></td>
<td class="nump">$ 26.3<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.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)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.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)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>107
<FILENAME>R87.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647962488712">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_CRSUAwardsOutstandingNumber', window );">Number of Units Outstanding, CRSU (in shares)</a></td>
<td class="nump">38,628<span></span>
</td>
<td class="nump">42,727<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="top.Show.showAR( this, 'defref_dsgx_CRSUAwardsWeightedAverageContractualLife', window );">Weighted-Average Remaining Contractual Life, CRSU (Year)</a></td>
<td class="text">1 year 4 months 24 days<span></span>
</td>
<td class="text">1 year 6 months<span></span>
</td>
<td class="text">1 year 7 months 6 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="top.Show.showAR( this, 'defref_dsgx_CRSUAwardsGrantsInPeriod', window );">Number of Units Granted, CRSU (in shares)</a></td>
<td class="nump">12,776<span></span>
</td>
<td class="nump">26,629<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="top.Show.showAR( this, 'defref_dsgx_CRSUAwardsVestedAndSettledInCash', window );">Number of Units Vested and settled in cash, CRSU (in shares)</a></td>
<td class="num">(26,755)<span></span>
</td>
<td class="num">(30,480)<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="top.Show.showAR( this, 'defref_dsgx_CRSUAwardsForfeitedInPeriod', window );">Number of Units Forfeited, CRSU (in shares)</a></td>
<td class="num">(221)<span></span>
</td>
<td class="num">(248)<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="top.Show.showAR( this, 'defref_dsgx_CRSUAwardsOutstandingNumber', window );">Number of Units Outstanding, CRSU (in shares)</a></td>
<td class="nump">24,428<span></span>
</td>
<td class="nump">38,628<span></span>
</td>
<td class="nump">42,727<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="top.Show.showAR( this, 'defref_dsgx_CRSUAwardNonvestedNumber', window );">Non-vested, CRSU (in shares)</a></td>
<td class="nump">24,428<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="top.Show.showAR( this, 'defref_dsgx_CRSUAwardNonvestedWeightedAverageContractualLife', window );">Non-vested, Weighted-Average Remaining Contractual Life, CRSU (Year)</a></td>
<td class="text">1 year 4 months 24 days<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_CRSUAwardNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of nonvested CRSU awards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Related to CRSU awards forfeited in period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of CRSU grants in period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of CRSU awards outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average remaining contractual life of CRSU awards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>108
<FILENAME>R88.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647962446328">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="nump">$ 102,610<span></span>
</td>
<td class="nump">$ 70,369<span></span>
</td>
<td class="nump">$ 48,035<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="nump">36,312<span></span>
</td>
<td class="nump">31,307<span></span>
</td>
<td class="nump">19,557<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=country_US', window );">United States (US)</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="nump">32,338<span></span>
</td>
<td class="nump">26,072<span></span>
</td>
<td class="nump">19,962<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember', window );">Other Countries [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="nump">$ 33,960<span></span>
</td>
<td class="nump">$ 12,990<span></span>
</td>
<td class="nump">$ 8,516<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxAuthorityAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityAxis=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_us-gaap_IncomeTaxAuthorityAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityAxis=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_us-gaap_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember</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>109
<FILENAME>R89.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647934839224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense</a></td>
<td class="nump">$ 14,814<span></span>
</td>
<td class="nump">$ 3,746<span></span>
</td>
<td class="nump">$ 5,295<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="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense</a></td>
<td class="nump">1,514<span></span>
</td>
<td class="nump">14,523<span></span>
</td>
<td class="nump">5,743<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">16,328<span></span>
</td>
<td class="nump">18,269<span></span>
</td>
<td class="nump">11,038<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense</a></td>
<td class="nump">1,817<span></span>
</td>
<td class="nump">1,875<span></span>
</td>
<td class="nump">1,020<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="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense</a></td>
<td class="nump">8,381<span></span>
</td>
<td class="nump">7,047<span></span>
</td>
<td class="nump">5,008<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=country_US', window );">United States (US)</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense</a></td>
<td class="nump">8,689<span></span>
</td>
<td class="num">(3,050)<span></span>
</td>
<td class="nump">3,496<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="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense</a></td>
<td class="nump">1,941<span></span>
</td>
<td class="nump">9,537<span></span>
</td>
<td class="nump">1,390<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember', window );">Other Countries [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense</a></td>
<td class="nump">4,308<span></span>
</td>
<td class="nump">4,921<span></span>
</td>
<td class="nump">779<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="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense</a></td>
<td class="num">$ (8,808)<span></span>
</td>
<td class="num">$ (2,061)<span></span>
</td>
<td class="num">$ (655)<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_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxAuthorityAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityAxis=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_us-gaap_IncomeTaxAuthorityAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityAxis=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_us-gaap_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityAxis=dsgx_OtherCountriesMember</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>110
<FILENAME>R90.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647953360664">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities', window );">Accrued liabilities not currently deductible</a></td>
<td class="nump">$ 5,408<span></span>
</td>
<td class="nump">$ 4,471<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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards', window );">Accumulated net operating losses</a></td>
<td class="nump">10,594<span></span>
</td>
<td class="nump">12,866<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="top.Show.showAR( this, 'defref_dsgx_DeferredTaxAssetsCorporateMinimumTaxes', window );">Corporate minimum taxes</a></td>
<td class="nump">2,346<span></span>
</td>
<td class="nump">1,596<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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment', window );">Difference between tax and accounting basis of property and equipment</a></td>
<td class="nump">12,021<span></span>
</td>
<td class="nump">23,754<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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch', window );">Research and development and other tax credits and expenses</a></td>
<td class="nump">1,172<span></span>
</td>
<td class="nump">1,649<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGross', window );">Total deferred income tax assets</a></td>
<td class="nump">31,541<span></span>
</td>
<td class="nump">44,336<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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets', window );">Difference between tax and accounting basis of intangible assets</a></td>
<td class="num">(47,255)<span></span>
</td>
<td class="num">(45,030)<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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesOther', window );">Other temporary differences</a></td>
<td class="num">(2,886)<span></span>
</td>
<td class="num">(2,109)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilities', window );">Total deferred income tax liabilities</a></td>
<td class="num">(50,141)<span></span>
</td>
<td class="num">(47,139)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_DeferredTaxAssetsNetBeforeValuationAllowance', window );">Net deferred income taxes</a></td>
<td class="num">(18,600)<span></span>
</td>
<td class="num">(2,803)<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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(1,961)<span></span>
</td>
<td class="num">(11,365)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_DeferredTaxAssetsLiabilitesNet1', window );">Net deferred income taxes, net of valuation allowance</a></td>
<td class="num">$ (20,561)<span></span>
</td>
<td class="num">$ (14,168)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_DeferredTaxAssetsCorporateMinimumTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from corporate minimum taxes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DeferredTaxAssetsCorporateMinimumTaxes</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_DeferredTaxAssetsLiabilitesNet1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances, of deferred tax asset (liability) attributable to deductible differences and carryforwards, without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DeferredTaxAssetsLiabilitesNet1</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_DeferredTaxAssetsNetBeforeValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DeferredTaxAssetsNetBeforeValuationAllowance</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_DeferredIncomeTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences.</p></div>
<a href="javascript:void(0);" onclick="top.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(26)(b))<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 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<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(15)(b)(2))<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 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<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(26)(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredTaxAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.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 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredTaxAssetsPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredTaxAssetsTaxCreditCarryforwardsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-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 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32559-109319<br><br>Reference 3: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="top.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 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredTaxLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>111
<FILENAME>R91.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956329176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="nump">$ 102,610<span></span>
</td>
<td class="nump">$ 70,369<span></span>
</td>
<td class="nump">$ 48,035<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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Combined basic Canadian statutory rates</a></td>
<td class="nump">26.50%<span></span>
</td>
<td class="nump">26.50%<span></span>
</td>
<td class="nump">26.50%<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate', window );">Income tax expense based on the above rates</a></td>
<td class="nump">$ 27,192<span></span>
</td>
<td class="nump">$ 18,648<span></span>
</td>
<td class="nump">$ 12,729<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization', window );">Permanent differences including amortization of intangible assets</a></td>
<td class="nump">3,467<span></span>
</td>
<td class="nump">875<span></span>
</td>
<td class="num">(673)<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential', window );">Effect of differences between Canadian and foreign tax rates</a></td>
<td class="num">(1,855)<span></span>
</td>
<td class="num">(600)<span></span>
</td>
<td class="num">(274)<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate', window );">Effect of rate changes on current year timing differences</a></td>
<td class="num">(1,085)<span></span>
</td>
<td class="num">(1,063)<span></span>
</td>
<td class="num">(609)<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes', window );">Adjustments relating to previous periods</a></td>
<td class="num">(569)<span></span>
</td>
<td class="num">(1,034)<span></span>
</td>
<td class="nump">94<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="top.Show.showAR( this, 'defref_dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions', window );">Increase (decrease) in accruals for uncertain tax positions</a></td>
<td class="num">(849)<span></span>
</td>
<td class="nump">1,289<span></span>
</td>
<td class="num">(1,042)<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(9,102)<span></span>
</td>
<td class="nump">254<span></span>
</td>
<td class="nump">692<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost', window );">Stock based compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100<span></span>
</td>
<td class="nump">352<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationOtherAdjustments', window );">Other, including foreign exchange</a></td>
<td class="num">(871)<span></span>
</td>
<td class="num">(200)<span></span>
</td>
<td class="num">(231)<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">$ 16,328<span></span>
</td>
<td class="nump">$ 18,269<span></span>
</td>
<td class="nump">11,038<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementScenarioAxis=dsgx_AdjustmentForRoundingMember', window );">Adjustment for rounding</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 48,033<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in accruals for uncertain tax positions .</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions</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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="top.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.Fact.4)<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 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><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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="top.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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationChangeInEnactedTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in the income tax rates.</p></div>
<a href="javascript:void(0);" onclick="top.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 15<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32059-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 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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="top.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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible amortization.</p></div>
<a href="javascript:void(0);" onclick="top.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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationOtherAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.</p></div>
<a href="javascript:void(0);" onclick="top.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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationOtherAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxReconciliationPriorYearIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to revisions of previously reported income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="top.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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_srt_StatementScenarioAxis=dsgx_AdjustmentForRoundingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StatementScenarioAxis=dsgx_AdjustmentForRoundingMember</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>112
<FILENAME>R92.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647953495192">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jan. 31, 2022 </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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">$ 45,213<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TaxPeriodAxis=dsgx_TaxYear2022Member', window );">2023</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">49<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TaxPeriodAxis=dsgx_TaxYear2023Member', window );">2024</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">186<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TaxPeriodAxis=dsgx_TaxYear2024Member', window );">2025</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">107<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TaxPeriodAxis=dsgx_TaxYear2026Member', window );">2027</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">769<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TaxPeriodAxis=dsgx_AfterTaxYear2026Member', window );">Thereafter</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">44,102<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_CanadaRevenueAgencyMember', window );">Canada Revenue | Foreign Tax Authority [Member]</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">8,022<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_CanadaRevenueAgencyMember', window );">Canada Revenue | Foreign Tax Authority [Member] | Thereafter</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">8,022<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_InternalRevenueServiceIRSMember', window );">United States | Domestic Tax Authority [Member]</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">1,890<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_InternalRevenueServiceIRSMember', window );">United States | Domestic Tax Authority [Member] | 2027</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_InternalRevenueServiceIRSMember', window );">United States | Domestic Tax Authority [Member] | Thereafter</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">1,473<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_EmeaIncomeTaxAuthorityMember', window );">EMEA Region | Foreign Tax Authority [Member]</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">33,094<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_EmeaIncomeTaxAuthorityMember', window );">EMEA Region | Foreign Tax Authority [Member] | 2025</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">40<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_EmeaIncomeTaxAuthorityMember', window );">EMEA Region | Foreign Tax Authority [Member] | Thereafter</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">33,054<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific Region | Foreign Tax Authority [Member]</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">2,207<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific Region | Foreign Tax Authority [Member] | 2023</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">49<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific Region | Foreign Tax Authority [Member] | 2024</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">186<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific Region | Foreign Tax Authority [Member] | 2025</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">67<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific Region | Foreign Tax Authority [Member] | 2027</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">352<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific Region | Foreign Tax Authority [Member] | Thereafter</a></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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">$ 1,553<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_OperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32559-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_TaxPeriodAxis=dsgx_TaxYear2022Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TaxPeriodAxis=dsgx_TaxYear2022Member</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_TaxPeriodAxis=dsgx_TaxYear2023Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TaxPeriodAxis=dsgx_TaxYear2023Member</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_TaxPeriodAxis=dsgx_TaxYear2024Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TaxPeriodAxis=dsgx_TaxYear2024Member</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_TaxPeriodAxis=dsgx_TaxYear2026Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TaxPeriodAxis=dsgx_TaxYear2026Member</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_TaxPeriodAxis=dsgx_AfterTaxYear2026Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TaxPeriodAxis=dsgx_AfterTaxYear2026Member</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_IncomeTaxAuthorityNameAxis=us-gaap_CanadaRevenueAgencyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityNameAxis=us-gaap_CanadaRevenueAgencyMember</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_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember</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_IncomeTaxAuthorityNameAxis=us-gaap_InternalRevenueServiceIRSMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityNameAxis=us-gaap_InternalRevenueServiceIRSMember</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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember</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_IncomeTaxAuthorityNameAxis=dsgx_EmeaIncomeTaxAuthorityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityNameAxis=dsgx_EmeaIncomeTaxAuthorityMember</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_IncomeTaxAuthorityNameAxis=dsgx_AsiaPacificIncomeTaxAuthorityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityNameAxis=dsgx_AsiaPacificIncomeTaxAuthorityMember</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>113
<FILENAME>R93.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956226968">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent', window );">Liability, beginning of year</a></td>
<td class="nump">$ 8,393<span></span>
</td>
<td class="nump">$ 6,650<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="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions', window );">Gross increases - current period</a></td>
<td class="nump">333<span></span>
</td>
<td class="nump">2,502<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="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations', window );">Lapsing due to statutes of limitations</a></td>
<td class="num">(1,372)<span></span>
</td>
<td class="num">(759)<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="top.Show.showAR( this, 'defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent', window );">Liability, end of year</a></td>
<td class="nump">$ 7,354<span></span>
</td>
<td class="nump">$ 8,393<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_LiabilityForUncertainTaxPositionsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for uncertainty in income taxes classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.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.24)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilityForUncertainTaxPositionsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.</p></div>
<a href="javascript:void(0);" onclick="top.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 15A<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.</p></div>
<a href="javascript:void(0);" onclick="top.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 15A<br> -Subparagraph (a)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>114
<FILENAME>R94.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647962300456">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Additional information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_IncomeBeforeTaxesPercent', window );">Income Before Taxes, Percent</a></td>
<td class="nump">16.00%<span></span>
</td>
<td class="nump">26.00%<span></span>
</td>
<td class="nump">23.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Effective Income Tax Rate Reconciliation, Percent, Total</a></td>
<td class="nump">14.00%<span></span>
</td>
<td class="nump">5.00%<span></span>
</td>
<td class="nump">11.00%<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="top.Show.showAR( this, 'defref_us-gaap_UndistributedEarningsOfForeignSubsidiaries', window );">Undistributed Earnings of Foreign Subsidiaries</a></td>
<td class="nump">$ 573,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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent', window );">Liability for Uncertainty in Income Taxes, Noncurrent</a></td>
<td class="nump">7,354<span></span>
</td>
<td class="nump">$ 8,393<span></span>
</td>
<td class="nump">$ 6,650<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="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate', window );">Unrecognized Tax Benefits that Would Impact Effective Tax Rate</a></td>
<td class="nump">7,400<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="top.Show.showAR( this, 'defref_us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit', window );">Significant Change in Unrecognized Tax Benefits is Reasonably Possible, Amount of Unrecorded Benefit</a></td>
<td class="nump">2,100<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="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis=dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember', window );">Volunatry Change Elected to Adopt in Accounting for Deferred Revenue for Income Tax Purposes in the United States [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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentFederalTaxExpenseBenefit', window );">Current Federal Tax Expense (Benefit)</a></td>
<td class="num">(9,300)<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="top.Show.showAR( this, 'defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit', window );">Deferred Federal Income Tax Expense (Benefit)</a></td>
<td class="nump">$ 9,300<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_IncomeBeforeTaxesPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Income tax expense expressed as a percentage of income before taxes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_IncomeBeforeTaxesPercent</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_CurrentFederalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.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(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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 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 3: 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 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentFederalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.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(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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 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 3: 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 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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredFederalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for uncertainty in income taxes classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.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.24)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilityForUncertainTaxPositionsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 15<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_UndistributedEarningsOfForeignSubsidiaries">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of undistributed earnings of foreign subsidiaries intended to be permanently reinvested outside the country of domicile.</p></div>
<a href="javascript:void(0);" onclick="top.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 740<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6487024&amp;loc=d3e29054-158556<br><br>Reference 2: 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 (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6424122&amp;loc=d3e41874-109331<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 740<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6479915&amp;loc=d3e66715-112838<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 25<br> -Paragraph 3<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123452999&amp;loc=d3e28200-109314<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UndistributedEarningsOfForeignSubsidiaries</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.</p></div>
<a href="javascript:void(0);" onclick="top.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 15A<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_AdjustmentsForChangeInAccountingPrincipleAxis=dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AdjustmentsForChangeInAccountingPrincipleAxis=dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember</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>115
<FILENAME>R95.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647962400760">
<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="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Balance</a></td>
<td class="nump">$ 51,291<span></span>
</td>
<td class="nump">$ 42,063<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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Recognition of previously deferred revenue</a></td>
<td class="num">(38,065)<span></span>
</td>
<td class="num">(37,843)<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="top.Show.showAR( this, 'defref_dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue', window );">Deferral of revenue</a></td>
<td class="nump">45,234<span></span>
</td>
<td class="nump">46,386<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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination', window );">Increases from business combinations, net</a></td>
<td class="nump">729<span></span>
</td>
<td class="nump">39<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="top.Show.showAR( this, 'defref_dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="num">(489)<span></span>
</td>
<td class="nump">646<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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Balance</a></td>
<td class="nump">58,700<span></span>
</td>
<td class="nump">51,291<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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Current</a></td>
<td class="nump">56,780<span></span>
</td>
<td class="nump">49,878<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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNet', window );">Balance</a></td>
<td class="nump">1,353<span></span>
</td>
<td class="nump">1,107<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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetReclassifiedToReceivable', window );">Transfers to trade receivables from contract assets</a></td>
<td class="num">(730)<span></span>
</td>
<td class="num">(563)<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="top.Show.showAR( this, 'defref_dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet', window );">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</a></td>
<td class="nump">815<span></span>
</td>
<td class="nump">783<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="top.Show.showAR( this, 'defref_dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="nump">5<span></span>
</td>
<td class="nump">26<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="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNet', window );">Balance</a></td>
<td class="nump">$ 1,443<span></span>
</td>
<td class="nump">$ 1,353<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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 current.</p></div>
<a href="javascript:void(0);" onclick="top.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 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130532-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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>116
<FILENAME>R96.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956979480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs 1 (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CapitalizedContractCostNet', window );">Capitalized contract cost, net, Total</a></td>
<td class="nump">$ 16.6<span></span>
</td>
<td class="nump">$ 12.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="top.Show.showAR( this, 'defref_us-gaap_CapitalizedContractCostAmortization', window );">Capitalized contract cost, amortization</a></td>
<td class="nump">$ 4.7<span></span>
</td>
<td class="nump">$ 3.3<span></span>
</td>
<td class="nump">$ 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_us-gaap_CapitalizedContractCostAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>117
<FILENAME>R97.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956769160">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs 2 (Details)<br> $ in Millions</strong></div></th>
<th class="th">
<div>Jan. 31, 2022 </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="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Remaining performance obligation, Amount</a></td>
<td class="nump">$ 366.8<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="top.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="top.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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>118
<FILENAME>R98.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956267160">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Acquisition-related costs</a></td>
<td class="nump">$ 1,904<span></span>
</td>
<td class="nump">$ 1,981<span></span>
</td>
<td class="nump">$ 3,457<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Contingent consideration adjustments</a></td>
<td class="nump">4,458<span></span>
</td>
<td class="num">(1,946)<span></span>
</td>
<td class="nump">340<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring plans</a></td>
<td class="nump">66<span></span>
</td>
<td class="nump">2,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherNonoperatingExpense', window );">Other non-operating expense, Total</a></td>
<td class="nump">$ 6,428<span></span>
</td>
<td class="nump">$ 2,335<span></span>
</td>
<td class="nump">$ 3,797<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_OtherNonoperatingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>119
<FILENAME>R99.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647956290904">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Charges - Restructuring Provision (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance</a></td>
<td class="nump">$ 70<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveAccrualAdjustment1', window );">Accruals and adjustments</a></td>
<td class="nump">66<span></span>
</td>
<td class="nump">$ 2,300<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash draw downs</a></td>
<td class="num">(136)<span></span>
</td>
<td class="num">(2,240)<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">70<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember', window );">Employee Severance [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance</a></td>
<td class="nump">70<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveAccrualAdjustment1', window );">Accruals and adjustments</a></td>
<td class="nump">2<span></span>
</td>
<td class="nump">1,717<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash draw downs</a></td>
<td class="num">(72)<span></span>
</td>
<td class="num">(1,657)<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">70<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_FacilityClosingMember', window );">Facility Closing [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveAccrualAdjustment1', window );">Accruals and adjustments</a></td>
<td class="nump">64<span></span>
</td>
<td class="nump">583<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash draw downs</a></td>
<td class="num">$ (64)<span></span>
</td>
<td class="num">$ (583)<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_PaymentsForRestructuring">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash payments made as the result of exit or disposal activities. Excludes payments associated with a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="top.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 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 2: 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 17<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3367-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForRestructuring</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RestructuringReserve">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount (including both current and noncurrent portions of the accrual) as of the balance sheet date pertaining to a specified type of cost associated with exit from or disposal of business activities or restructuring pursuant to a duly authorized plan.</p></div>
<a href="javascript:void(0);" onclick="top.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 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<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 2<br> -Subparagraph (SAB TOPIC 5.P.4(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringReserve</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RestructuringReserveAccrualAdjustment1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) which increases (decreases) the restructuring reserve from an adjustment to a previously accrued restructuring liability.</p></div>
<a href="javascript:void(0);" onclick="top.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 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<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 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringReserveAccrualAdjustment1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RestructuringReserveTranslationAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of foreign currency translation gain (loss) which decreases (increases) the restructuring reserve.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<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)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringReserveTranslationAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember</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_RestructuringCostAndReserveAxis=us-gaap_FacilityClosingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RestructuringCostAndReserveAxis=us-gaap_FacilityClosingMember</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>120
<FILENAME>R100.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140648042794104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Charges - Additional information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 66<span></span>
</td>
<td class="nump">$ 2,300<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringPlanAxis=dsgx_Fiscal2021RestructuringPlanMember', window );">Fiscal 2021 Restructuring 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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">$ 2,400<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_us-gaap_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringPlanAxis=dsgx_Fiscal2021RestructuringPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RestructuringPlanAxis=dsgx_Fiscal2021RestructuringPlanMember</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>121
<FILENAME>R101.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958549432">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Trade accounts receivable</a></td>
<td class="num">$ (2,884)<span></span>
</td>
<td class="nump">$ 143<span></span>
</td>
<td class="nump">$ 3,733<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherReceivables', window );">Other accounts receivable</a></td>
<td class="nump">2,042<span></span>
</td>
<td class="num">(7,098)<span></span>
</td>
<td class="num">(2,547)<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other</a></td>
<td class="num">(8,276)<span></span>
</td>
<td class="num">(5,029)<span></span>
</td>
<td class="num">(5,942)<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventory</a></td>
<td class="num">(498)<span></span>
</td>
<td class="nump">99<span></span>
</td>
<td class="num">(345)<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="nump">2,336<span></span>
</td>
<td class="num">(686)<span></span>
</td>
<td class="nump">1,768<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued liabilities</a></td>
<td class="nump">13,760<span></span>
</td>
<td class="num">(999)<span></span>
</td>
<td class="nump">3,265<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInIncomeTaxes', window );">Income taxes payable</a></td>
<td class="nump">426<span></span>
</td>
<td class="nump">3,835<span></span>
</td>
<td class="num">(1,550)<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="top.Show.showAR( this, 'defref_dsgx_IncreaseDecreaseInOperatingLeaseLiabilities', window );">Operating leases</a></td>
<td class="num">(259)<span></span>
</td>
<td class="nump">283<span></span>
</td>
<td class="nump">546<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredRevenue', window );">Deferred revenue</a></td>
<td class="nump">6,142<span></span>
</td>
<td class="nump">5,877<span></span>
</td>
<td class="num">(4,184)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapital', window );">Increase (Decrease) in Operating Capital, Total</a></td>
<td class="nump">$ 12,789<span></span>
</td>
<td class="num">$ (3,575)<span></span>
</td>
<td class="num">$ (5,256)<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of increase (decrease) in operating lease liabilities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in receivables classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>122
<FILENAME>R102.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647962348984">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">$ 424,690<span></span>
</td>
<td class="nump">$ 348,664<span></span>
</td>
<td class="nump">$ 325,791<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">United States (US)</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">242,086<span></span>
</td>
<td class="nump">211,232<span></span>
</td>
<td class="nump">202,814<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember', window );">EMEA</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">128,990<span></span>
</td>
<td class="nump">94,163<span></span>
</td>
<td class="nump">82,596<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">36,116<span></span>
</td>
<td class="nump">29,388<span></span>
</td>
<td class="nump">27,304<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">$ 17,498<span></span>
</td>
<td class="nump">$ 13,881<span></span>
</td>
<td class="nump">$ 13,077<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>123
<FILENAME>R103.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647962824872">
<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="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 424,690<span></span>
</td>
<td class="nump">$ 348,664<span></span>
</td>
<td class="nump">$ 325,791<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">378,494<span></span>
</td>
<td class="nump">309,731<span></span>
</td>
<td class="nump">284,654<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">41,136<span></span>
</td>
<td class="nump">33,879<span></span>
</td>
<td class="nump">33,555<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 5,060<span></span>
</td>
<td class="nump">$ 5,054<span></span>
</td>
<td class="nump">$ 7,582<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_srt_ProductOrServiceAxis=us-gaap_ServiceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>124
<FILENAME>R104.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647949460408">
<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>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Geograhical long-lived assets</a></td>
<td class="nump">$ 240,426<span></span>
</td>
<td class="nump">$ 252,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="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">United States (US)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Geograhical long-lived assets</a></td>
<td class="nump">102,649<span></span>
</td>
<td class="nump">92,442<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember', window );">EMEA</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Geograhical long-lived assets</a></td>
<td class="nump">43,922<span></span>
</td>
<td class="nump">39,769<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Geograhical long-lived assets</a></td>
<td class="nump">84,943<span></span>
</td>
<td class="nump">107,472<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Geograhical long-lived assets</a></td>
<td class="nump">$ 8,912<span></span>
</td>
<td class="nump">$ 12,398<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>125
<FILENAME>R105.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647958596872">
<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">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jan. 31, 2022 </div>
<div>segment</div>
</th></tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>126
<FILENAME>R106.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm140647959907256">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Event (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Feb. 09, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 90,278<span></span>
</td>
<td class="nump">$ 48,403<span></span>
</td>
<td class="nump">$ 292,053<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Subsequent Event | 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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Net of cash acquired</a></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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</a></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>
</tr>
</table>
<div style="display: none;">
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>127
<FILENAME>dsgx-20220131x40f_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/20220131"
  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">
    <link:schemaRef xlink:href="dsgx-20220131.xsd" xlink:type="simple"/>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember_t4Hc0sjibkeGpxupatbaKw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</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_StatementClassOfStockAxis_dsgx_RightsToPurchaseCommonSharesMember_nSyv6TtEQEeeLUWWwLVVqw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">dsgx:RightsToPurchaseCommonSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="dei:EntityAddressesAddressTypeAxis">dei:BusinessContactMember</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_WoFhHpDO0EKcQIF65DgIZg">
        <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_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_mfIYXhgIyEutGPk9clKJUg">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_QIs7W9xyCkuO8AzVgnZu3g">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_TausbxT04kSdrcoQckjP_A">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_0NJb6Rrf9E2XDSzf7H6-Mg">
        <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_AHDzDBNNwEKdzsCpyCG1xQ">
        <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_xtKcHXK14km9wzwjAcFOzg">
        <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_7CYQONsmVUWWo6uaQqO1eQ">
        <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_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_gP_9T311zEGHA0dmiVT16w">
        <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_4hAMxiTAoUetR67y6OzN9Q">
        <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_OOQKiMlEGE2aJSEwD48vRQ">
        <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_Wz9iH8wYd0O-Fu6ZdBYLBA">
        <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="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_oaO7TzfnxESITGUtdBa0Xg">
        <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>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_Z2f9Xp48hUGeQW4tvacMlg">
        <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>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_olNbahUDQU6XjkvjTgYGmw">
        <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>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_A8gi74q9xUKVG3uPnmO1Qg">
        <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>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xXAHuj9_7kumbyLN3SnhBQ">
        <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>2019-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_uILb96-R5U-JARfsjROcqQ">
        <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>2019-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jvhlfo0xuUS0JRb6sAjEdw">
        <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>2019-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_tdOf6WBla0SheUcR2Mm5NQ">
        <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>2019-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_KecCz_vCi0WIyzWw686IMA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range4Member</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_ayc5YaAvckuqG75CHoUJVg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range3Member</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_miym7Y2tQ0CWkuJKTYz8rg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range2Member</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_oFYYcwzT2kSngLEWBsY2Tg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range1Member</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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_Pk50zSWNUUqLi05xTSwP2g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range4Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_XNpUYrc4XEOgkXEq-NIbpw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_XCTgfzC54kK5U5TRd9kmYg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_XxmAIop8xU2fPHBgO1IozQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis">dsgx:Range1Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_tuTAz0XA_Ei-QJeWb1ffHQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_G9RPCEo4IUG05bsTdddmIQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_SPCBDNsT8km6uDuZauvpng">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_WoGVhn8RbEqNIS2XfMymGw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderapprovedStockOptionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_SwfVQ3NBHk6mbktgTezcWg">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_0PjYLYex6kWbjrP31EV_zQ">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_a6zlxirXhk6lj0r53h1eGQ">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_LTqMLIM6gE2LGZtryjqdiw">
        <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>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_xNK5CW1PfUKZ-5-p4RhSTQ">
        <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>2020-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_rqml2znZlUqm4RPvFsDXeg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">dsgx:DirectorsAndOfficersMember</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_srt_RangeAxis_srt_MaximumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_LzBPItrnkUSyLyvpW5dpwg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">dsgx:DirectorsAndOfficersMember</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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20240131_K7bJRvcCaUaOJCsKzIRyQA">
        <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-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BSaZuJ8iV0GnzVZKjRCLhg">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_TnVIMvcpNkClOMdi4uSnGg">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_kgEa_faQEEaf9O0kgi3l8A">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_255iORS_60mUVBtHlLU-CA">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_UQUY5v6DW0iqCVCBqwRomQ">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_country_US_VbxbVoj3b06INSbM_Y5HeQ">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_country_CA_VkQUR2kSEEmJnna-3JFEaQ">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_6htMCidMNU-SCNpKrlv23Q">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_w06w9bHzm0q81XG4qJWEZw">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_K-5exWnX8E-v55CULfOfLg">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_s19lreQFN0G4CHA8kcRBPw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_vTMkvCp1IE6fngyGxWx_1Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_country_US_FJqnonP8lkyEfzDqioCdqQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_country_CA_UjmB8NPywk6FmXwRFCgl9A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BPP9D5WlIEq4YeDnVnZ0lw">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_us-gaap_LicenseMember_-toxsNCiIUSMlF-mLvRISA">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_us-gaap_EMEAMember_mXxsr2nHD0KxZ_H5QJd88w">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_srt_AsiaPacificMember_MV9UcAsif0a_xzDnffJPrQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember__m-sOO5qIUeZ_06HupfX0g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_country_US_fFiFF8jOfkKgXgvDCb1jnw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_country_CA_x69LzXeWOk-JuVkVxesPuw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_zb8-b27fxEOqONHKWF7GSA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="Duration_5_1_2020_To_7_31_2020_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2021RestructuringPlanMember_uwsr5UeuT0mJDmP5YmRbvw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">dsgx:Fiscal2021RestructuringPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-05-01</startDate>
            <endDate>2020-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_wQ56Xji8okOHvhjyNs8GBg">
        <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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</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_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_qGgZ1KLOW0iJoBwYrLEc1w">
        <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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_EITjm6OxtkeOKUat7j70Wg">
        <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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_22SDPXLDbEGZubRlz13-ag">
        <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:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</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_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember_by-ctpJoUEKaLWdA6pBRzg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</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_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_rp5iMx3Ih0K6_ViVYm6lkQ">
        <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="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_4cdmB8XAmUyYsnIrVL3Ing">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_R2B2bfsFSUCWd9P9iuu-Sg">
        <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:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-09</startDate>
            <endDate>2022-02-09</endDate>
        </period>
    </context>
    <context id="Duration_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_fE0y39-Y1kOHLDmNwnB4zA">
        <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_-NIvLjm4HEmB4367X3GH_A">
        <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_2_21_2020_To_2_21_2020_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_cpr7JowY-0-fTELVxWuXZg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-21</startDate>
            <endDate>2020-02-21</endDate>
        </period>
    </context>
    <context id="Duration_8_20_2019_To_8_20_2019_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__K_CKExkQUGKL4V6QnHqHQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-08-20</startDate>
            <endDate>2019-08-20</endDate>
        </period>
    </context>
    <context id="Duration_6_27_2019_To_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_m7ZQo6l4GEGBffNZAjZ1cA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-06-27</startDate>
            <endDate>2019-06-27</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_l1xtGup8hUiSmVvpkwVeVA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:FacilityClosingMember</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_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_sDHuZnahDkGFo4n3vcYPFg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_FeZTDz1knEOIm6s3NcMHSQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:FacilityClosingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_o2zoEyp7oE2CHwT3-ufIYQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_12ucPReGf06Y2zWrjoJYHg">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_sxp2ND6Lz0-6_yRAr2_0iw">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_5n76_Ec7VUy6Fl_01TXv2A">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_CanadaRevenueAgencyMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_n3fDUqKHkkqwqyzCEm6tgw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:CanadaRevenueAgencyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2024Member_NPDrKNl4d0CiofQn3q182g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:EmeaIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2024Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_8D9ltBQutE-KNl9UnONHSQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:EmeaIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_FqALFL32L0-ZVtkRwQLTCw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2024Member_EP-c_U_ZvkyawADVsUc-Aw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2024Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2023Member_pbhmeJTzEEGvgX0QollwRw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2023Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2022Member_dH2gSqgTFkekaGwqxoz3MA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_MA7SJdYuj0eFWVuYE8qEnA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_KIBdpwnvzkWsrGEtyLogSw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_La9WG1s4XEa-tW_hDzgizA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_CanadaRevenueAgencyMember_bTrWatkgXEmVhEZwR06CHQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:CanadaRevenueAgencyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_oqLUw-Rkj0WHJz2YuBuBwQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:EmeaIncomeTaxAuthorityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_cfQip8AjzkiEGTBypq8DxQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">dsgx:AsiaPacificIncomeTaxAuthorityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_8W5hBkpkD06GZ7pYOMklEg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_-7oqMBKAW0Cw45fMmY7o7w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2024Member_qJ84ak9nB0KUDO_nxMpjtQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2024Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2023Member_47twzIQX9US1gRAIzK-aUg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2023Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2022Member_xSYF1Uobk0iMYrDd4Q5_2w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_in4-6PdoB06kzQIw1IwElg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:AfterTaxYear2026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_2_1_2019_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member_Uxq09-K35EWseTk8RpKELw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201602Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-02-01</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_nwDerRE9r0e6p4gjDGggYg">
        <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_gXjw1liBHESrg_jt9hHuxA">
        <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_FcXQBM-8kkCcoJ-ZFGX4-A">
        <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_zVSpNieKykqfgPNhmnCX9g">
        <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="As_Of_1_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_bEDa6AzDgUuoUnj9f094CA">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_4Pd12t1mQE2IfF6lO85jSw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_srt_StatementGeographicalAxis_country_US_uENRYDC8qUu5zkQ-ErjPaQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_srt_StatementGeographicalAxis_country_CA_WJM5zVB3HEGEGtna5KPVRg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_OjLJ9SGrykm8RexqufFiSQ">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_piMSALILw0-3-Lt6TVCDSg">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Z5yZxRLcU0CuWU92iGfJJA">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_7WV2WG7hY02Hue03KNCehQ">
        <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>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_8UoMpN6ffkGHrkF9TWjHWA">
        <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>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_CHgSwsp1YU-fuIhZ6XL__w">
        <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-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_ywumInG3jUiHKI12dCDfSw">
        <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-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_9VPfdHEG60GB6FjmgdjwIQ">
        <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-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_CJG2wdGE-UWUMxrjAtlXlw">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QNRGEZqKbk2H-xJ1qEeenA">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_srt_StatementScenarioAxis_dsgx_AdjustmentForRoundingMember_p_k977-wkUmegClVDfGXMQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementScenarioAxis">dsgx:AdjustmentForRoundingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ucbf_Mqi5E-GHs4jl2soJw">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_iiILgc48IEu3k37t4FnrZA">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_Zvp0J6SLfky_u_84LejsAQ">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_SwKl7wxg4U6E3uj88OkY1A">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_2AF4Kk2u9UCFYGLlmpx5eQ">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_E5rEsetdQE2euDGYsh7YKg">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_HTscRJdVmE-hEfxPxlNJTQ">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_SEpa10LrA0WzfrbaPWE0pA">
        <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:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_EWfnmDasXUiG5glp47JklA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_0znV3ErqU0W7ltG5tNNzlw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_qEq7TAJGbUWDi902EO3iWg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_9Y5S6N_X0EG0HQZeg2rKEQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WcEylzAH80Wci6W4cTylsg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_IwiX329ID0OWzMgPqLvdHA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_dLXciUyUp0ujzW8J9gIbPA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_p9nNK7-Cb02XX7YZ31EYHA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_0fxE6yk620mFkQIAhrUiMA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_iAWnsyaLHkGX5rClQmLyGw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_0_mws9CjSEi9zaG9wGYPrQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_LCFf39TyXEuWIUpt3uXoVg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_mDe5LIEq1kizEWJo9aQLBQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ufh9C_8PX0q_er__XG15VA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_iYJrinNx8US3_JDS2i61jw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ZI94cnnyBUqO9mu597uobg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_HhPjaBaLAk--NZLKhCGl7w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_OpXQurELgE6ZWTVHR5cUXw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_82Kvl8sh4kORcU3Z9dFzFQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_QY9PRynUCEuXIJeGAzYh8Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_hgEDwWyEoEyqPhkAlio-Gw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_96aa9pGyvEmPVHgyuRze9A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IbJEW73HBEy57YRp8uftKA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_-cen7Q9c80KeAvXRKzVkoQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_IlkBq9tWJ067uQ8n3RQeDg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_toEokvOHmkGkRwW0VFGSFQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_QslD97aGzUSmxgNUgo0gmQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_8vVpAF_3PUOLOUfUD_AZSA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_vOSTvRk7qkWykSTBxtWbFg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_VI2m3FobU02SMVYSyVJ6CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_upldn00obEaI0YwkfSbKKw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_RFl-ivDUpkuM4gPqQc1uoA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_AodaZuJJhEmLGfk5vM_4Xg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_NxVrBFDtfE2aU_eySMTHTQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_MyJws-_XkEOnbAWEolXtkA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_M_zFBBQA-kCCKiZ0dMBFNw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_clruato9GEygS8dCpkf03w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_Rjjd1fsOdkG_a8K7mc9t2g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_0a47ECpsREmTvHqq58lxlg">
        <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_AQeERyWeAUmcM8TN2dBtng">
        <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_KidyCChL90K5qlmRPwH-NQ">
        <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_rGPZE8F7EEGVhjUZw2M6eA">
        <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="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_DpHhSXHT30WFldVT8ub07g">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_nhQYimyVwEawwo6fkcZKtw">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_JbBgq5JeqkeJmJpd6Erqqw">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_t1zQKq9u2EG0psuawWuKvg">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_CfGPFGAsT0yBB-18Em2TxQ">
        <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>2020-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_T35Ce-ftVkCfzd2IVx2x1w">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_8o6KsHXFCUGApF_yinehww">
        <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-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_z-O83c1_EUOg0PNZOSrN5A">
        <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_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_RgbL7tZqa0-Mtc-SaBHNhw">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_h9V1252FXUaVf6IBeLfeCg">
        <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="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_DwROZOUKqUyASpoDf9wQhg">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_u_RInjQ7nUm_b14xd328ug">
        <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>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_LbgTJfBAc0-puJJw6dnpjQ">
        <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>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_vkNJbO3L_0iTH20RJ2bw7g">
        <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>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_2-m8W4ieSkm2EHWoicblBg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</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_IncomeTaxAuthorityAxis_country_US_Vrz8x3cMY0eGg2MgcD_XJg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</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_IncomeTaxAuthorityAxis_country_CA_dp4Lg9uba0meUHvS8vBMVA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_JVIx6YYHZ0SFgUNH4y46NQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_US_1k1e81jvskaCGwqzFZNxow">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_CA_-qoUg8uSNEmdIC9kGUAjGQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_0BoiksB-jUqzI_Pn77OHOg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">dsgx:OtherCountriesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_US_A-vqgqS9w0Khx2tJGBb58w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_CA_8UKHeEHvmUybpv2vplN8OA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember_z7MAqE8efEW_Ldoeku3vXw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">dsgx:VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2019_uG_65RiDbkmgzyTBRRPLRA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2019-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_NlJ5oxTQ6UWVrL3DGtx8Dw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</xbrldi:explicitMember>
                <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_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_m2aVx6RaU0yxG_4hM-YwGg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</xbrldi:explicitMember>
                <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_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_8HUH7Y_IdkC1mJohr3nlZQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_8Ah7qZo0N0q9fJLHWe_fAQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember__4iI8QiVVkCWTDOwVp8BPQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember>
                <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_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Zg8RmQtgDUy46PpX-zr9xA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember>
                <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_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_9HVnyG-GgkS3TAR7yaffRQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_uC3qtrAlckiNFx9y3xMYcQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_e_qmpySADECwk7mYyKxEiw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember>
                <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_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_1IENC0jwXESl2IShVnfpRg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember>
                <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_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_yaSyCWUyfEmXCz3tNLVbRg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_EN8sgTg8z0O8q8r2t3z_Fg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_OAOOdrPxlEGBgjExzkPMpQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember>
                <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_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_eqDX7VyTkUyhFUQH9sWjXg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember>
                <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_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_txYuo3m0uUqxVIbsRXXUdg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IDk6N0SKMU6pWQST9laSxQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_Luy4xt2ioU6wUP9Q5BVL-g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_AY9M0d4raU-ckFXOR_VPaw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_L2luSBQ0CUOmWlJlGBgiVg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_KWy6P_GcCU2aIEIfwf-H6Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_1Ab9pJ7f9UOYPNdjET5WSA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_sB4ayHA7TkuJDMCz0_LAiw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_F10gJ1_3qU-xnghG6KhaUg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_TAOskhj0qUKmj6GOUiAGpA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_A1Zc-28a10KJsK2k_TNjow">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_QJZLisK4mEeWaMAJN6xUGQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_C1u53VpXhES2Twr8_VV-IQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_QwWpdt93TUeOUO1vd2ekLA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember__0iDAnSQ8kOD7SH6qjdtzw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_tWFqjq24p0qwaoSd7wglwQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_JKz_hchtG0y_TKM9VtPhiw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_lZhiZbsAHEaZ1ucIjCKFUg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_As8x__qscEqyyK1LbmzYig">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_-RiW0iv7UUCv1zdRGwiO-A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_EMjy3I83rEi_Uywh6-FkXQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9OPl-_NamU-8jPKQBsPFcQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_DRyHZVXCOkG9NuodBL4_zg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_8lJAxmSWeUWeY2KhOn6Bhw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_-z53bdCWJ0qfr2IOa7OwDg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_JKgy9A0JoE6CxbpXp4agWg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_qYfwYNOh80OpqM6Igh29dQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_oO9lFQJTbUSxS7UXzSWnPA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZQHQGJhj7USnLe7o6yF-LQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_xGBeHZqGfUecRTFn1FKezg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_UaWFtW-ymEac39ZpsOI9Mw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_tGsJoTzniEuZ2nBbpcH4mg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WUiitBuZxkaT_KhhU0_gnQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LpDbjRYSq02nc1l1CVxsWw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_GBIsGRYPq0KW3gkpF98WBw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_eTIEUugiW0yBBvixxgp-Yw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_x4G7EFWpMU67ejOu1XZTNg">
        <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-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_5VdpNuQirk-81zaOQK04WA">
        <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-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_gQibUrB05UCy_-zIIsEmzQ">
        <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-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_qVi9CDTjukeDzh6qfnf3_w">
        <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-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_iXJAkxzkfEmbWhtNsF9DaA">
        <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_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pN3gJRdEbUmTra2ded8SGA">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_3QFf5n1hKEaU_I-jPBavcw">
        <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:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-02-09</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_COREKontainersAndShipTrackMember_Na_m748yMkC_8ItOGImQWQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:COREKontainersAndShipTrackMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__FM86vXOh02yrHBKuD8f4g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Acquisitions2022Member_iwvQAXkNEUC4-KVO_3DvMQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:Acquisitions2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_k2f6AxEZnU-5tuFi5l7-yA">
        <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_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_CZlLc3PkPEGHTiG_tcT0tQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-11-06</instant>
        </period>
    </context>
    <context id="As_Of_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_K2fv58fH3kidZbNiWe-ZLA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-10</instant>
        </period>
    </context>
    <context id="As_Of_2_21_2020_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_g1PCOnoy6EW5BDn__nPeaw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-02-21</instant>
        </period>
    </context>
    <context id="As_Of_8_20_2019_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_cFf-BZNtEUyExQjSmseeCw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-08-20</instant>
        </period>
    </context>
    <context id="As_Of_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_UdmFWIytNUKEePP1VREI2Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-05-10</instant>
        </period>
    </context>
    <context id="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA">
        <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_UeQxy_Xq3EWY5r4R8mN2Bg">
        <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="As_Of_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_LhkN6ua3y0WxshKVcjKCGQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-06-27</instant>
        </period>
    </context>
    <context id="As_Of_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_EWzTXDK11kuuajqtQLW5Xw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-02-12</instant>
        </period>
    </context>
    <context id="Duration_2_12_2019_To_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_XwzrU8ENo0OG_AANymt7Zw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-12</startDate>
            <endDate>2019-02-12</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_N5hco1tb6U67Swm5ryMSmg">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_r5pSsa_cYkCG0A19zqkGbw">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_z7zilvJfkEWdP1QukbdUoQ">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_iiKzX0DmCE6auk_0Kl21Pw">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_0qfldzUGnUa8D6oNioLzVQ">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_wEcqw4uO2keH-5OKP18XBQ">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_Nb9EtL9nKkukH1rnMIiTrw">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_cWPjPg4LDkWEaFxKq7xJYA">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_0kw2A8eK6EG7Hy2gjU7AnA">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_HykPW4NlGEivd_SePNDWQA">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_p-sYBbEvvUCRaew36CFgkA">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_fDOL7lqI6U-y6cUkIlDJ-g">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_8l1N7K4Xc02vvyAvHjaasQ">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_3bFzRfjWLkqA2oYYNELPFQ">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_3MfANjnYcECPQTJiRahhhg">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_GmlB_N6orEO4bj1gBhlFpQ">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_jsHHy_PqpkiirASYpxSruQ">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_PDYPg1dAqE2gEl9iicLP8Q">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_QcE0I4cJ5k2iVg_82e4xEg">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_J1LSEqJWtUeeWzLBwEGttA">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_ru_9FcT6ikaFMxDHrrMd5Q">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_BrRAvzRdC0KOXdi8b39Vcw">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nJijUlDHfE2mcW48hAEXwQ">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_eoj-x1FNVEeX-g8-deMtaw">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_fxhEzFyKA0WbdTUOW2bHFQ">
        <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_nbse0UCE-EW4cF_lZVKosA">
        <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_hkrMSkRGkUGy4FaD2LwjiQ">
        <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_KzJjuDmC6USUUUb1sEVUww">
        <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="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_dpzYaXowaUGHEeOzNVoncg">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_vAEh8AqvVUyUGNT5U1AA7g">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_W2_efZk4UEOnz2T_FP4d-Q">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_IrgBNrYG-U-TRqB9u8qUuQ">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_HoZcmJS5UEGoApRP_erQ2A">
        <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_-1BLRqHEr0uswedXBzEx3A">
        <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_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng">
        <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="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og">
        <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>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA">
        <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_0aLkmM4cwESLDqXJ3Fiwzg">
        <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="Duration_2_1_2021_To_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_LYIvNCFuHkin3VL-ZTwqZg">
        <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>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_4HEL19AECkW499iCsp6lQg">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_DW40VpY3vUOYNnDB7B6xUA">
        <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="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_rnnC8H1lFUaMzqv-faVMZw">
        <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>2021-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_r1XeBldg10OTWilpIrUQ5A">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_ayZ85oCYrkqVqWmMqqiP9g">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_8PMORFsxEEKKw8OpaNUE7g">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_0oTRyn6q_ESvDqkRHqwbiw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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_srt_RangeAxis_srt_MaximumMember_4hqUhne3rUqREbUiI2ekeQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_dsgx_CashsettledRestrictedSharePlanMember_xKtZmAwUnU66uUCT2654kw">
        <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:AwardTypeAxis">dsgx:CashsettledRestrictedSharePlanMember</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_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_dsgx_CashsettledRestrictedSharePlanMember_FU9bE0nj0UOkmWAWR5ux4Q">
        <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:AwardTypeAxis">dsgx:CashsettledRestrictedSharePlanMember</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_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_6gWvZqMFu0-PySAX6jXeNw">
        <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>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_yN0rFVro70eOMuM0Ex5FRQ">
        <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>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_Vu5P28ZOKE2xlWNdAuVDzA">
        <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>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog">
        <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>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw">
        <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>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA">
        <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>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:BesttransportMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Acpz1De2gUW7H4nJYzi56A">
        <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_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_COREKontainersAndShipTrackMember_iGVsbJ4rcUGpAAEC07MnkQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:COREKontainersAndShipTrackMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_11_6_2020_To_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_Lq0x8Dst1Ua4ndrbhaCCBA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-11-06</startDate>
            <endDate>2020-11-06</endDate>
        </period>
    </context>
    <context id="Duration_6_10_2020_To_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_9r0d5j0vHkOZ65LLgwaf8Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-06-10</startDate>
            <endDate>2020-06-10</endDate>
        </period>
    </context>
    <context id="Duration_5_10_2019_To_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_JMmmRI9sbECGGlYuO1HaJg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-05-10</startDate>
            <endDate>2019-05-10</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2022AcquisitionsMember</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_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ">
        <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_cTcnpaQkE06Td8DyQzqjgg">
        <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_YuJyuSHG9Uqtu2klu3sKmw">
        <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_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2021AcquisitionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:ShipTrackMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PeoplevoxMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:KontainersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VisualComplianceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2020AcquisitionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:StepcomMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreTransportTechnologiesNzLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-02-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_dsgx_DeferredShareUnitPlanMember_tqFBQc7Jn0OwDHsZ0d7dIw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2021-01-31</endDate>
        </period>
    </context>
    <unit id="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">
        <measure>pure</measure>
    </unit>
    <unit id="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="Unit_Standard_CAD_U4lm8KFyrE2-58IWVu9ONA">
        <measure>iso4217:CAD</measure>
    </unit>
    <unit id="Unit_Standard_segment_KK23ak5saEO7Bet-BMU5GQ">
        <measure>dsgx:segment</measure>
    </unit>
    <unit id="Unit_Standard_EUR__n7KenNwikaxusqIFuXIvQ">
        <measure>iso4217:EUR</measure>
    </unit>
    <unit id="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">
        <measure>shares</measure>
    </unit>
    <dei:TradingSymbol
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_dsgx_RightsToPurchaseCommonSharesMember_nSyv6TtEQEeeLUWWwLVVqw"
      id="Hidden_RQmH5wmrWEynBfX1wC5JIw">DSGX</dei:TradingSymbol>
    <dei:DocumentType
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_TyDOnw_IbE-Jq4Zp9d5qqQ">40-F</dei:DocumentType>
    <dei:DocumentRegistrationStatement
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_yKwjS0V4L06m164LKxgFYQ">false</dei:DocumentRegistrationStatement>
    <dei:DocumentAnnualReport
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_HuNxbVW5ZUWH99jDwCOtvg">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_uIFdR5BZbEui9BkfAh6cpQ">2022-01-31</dei:DocumentPeriodEndDate>
    <dei:EntityFileNumber
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_hp8qtmD9Y0iCIBO6Tk0wMQ">000-29970</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_SiqUo9Ci4k-IEmq-tSC_sA">DESCARTES SYSTEMS GROUP&#160;INC</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_Twr7tyuFVkirlJITZlnW4A">Z4</dei:EntityIncorporationStateCountryCode>
    <dei:EntityAddressAddressLine1
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_jLBtiYMUPk2wOcvRuHAf1g">120 Randall Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr__ShraPpkP0WcmUO_JFwpWQ">Waterloo</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_C_xUKSED402W_FQ8OxTmEg">ON</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressCountry
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_vBHJ_sJpokS6QUw4ykR9fA">CA</dei:EntityAddressCountry>
    <dei:EntityAddressPostalZipCode
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_pRRX936fC0mfmz0f0a-dSQ">N2V 1C6</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_n1PbZDOZe0Cu3f47hIDl6g">519</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_pFtSuAzfakC0U2fyBpsJtQ">746-8110</dei:LocalPhoneNumber>
    <dei:ContactPersonnelName
      contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA"
      id="Narr_OS6QUSjiiE25hM4ZFV5JvA">Descartes Systems (USA) LLC</dei:ContactPersonnelName>
    <dei:EntityAddressAddressLine1
      contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA"
      id="Narr_U3a3u5XgGUOmrjGRrRXxuw">Powers Ferry Business Park</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA"
      id="Narr_QBcXNvQ4yEik7LCYmr6-8Q">2030 Powers Ferry Road SE</dei:EntityAddressAddressLine2>
    <dei:EntityAddressAddressLine3
      contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA"
      id="Narr_gak_UQbrj0mDlWQiekr-Gg">Suite&#160;350</dei:EntityAddressAddressLine3>
    <dei:EntityAddressCityOrTown
      contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA"
      id="Narr_3iECPWRIpUuCtVj-4T6Phw">Atlanta</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA"
      id="Narr_PFfGBwXYV06z99rDAO7gMQ">GA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA"
      id="Narr_G9wPSQaaLkuhB56a2lgHww">30339-5066</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA"
      id="Narr_QNo4GLDBW06RVjNSF348Sg">678</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="Duration_2_1_2021_To_1_31_2022_dei_EntityAddressesAddressTypeAxis_dei_BusinessContactMember_gzrfEwLIW0GprHrPFlyMLA"
      id="Narr_R4WzZWFWY06AqpLRMfDUfA">247-0400</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember_t4Hc0sjibkeGpxupatbaKw"
      id="Narr_PutIaGZihUW95UtL1kZVwQ">Common Shares, no par value</dei:Security12bTitle>
    <dei:Security12bTitle
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_dsgx_RightsToPurchaseCommonSharesMember_nSyv6TtEQEeeLUWWwLVVqw"
      id="Narr_B7jX1eRlnESQBPLbpQWbpA">Rights to purchase Common Shares, no par value</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember_t4Hc0sjibkeGpxupatbaKw"
      id="Narr_765jJO3fPkyKAwxUaFKLdw">DSGX</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_us-gaap_CommonStockMember_t4Hc0sjibkeGpxupatbaKw"
      id="Narr_4njoWDdw80yVC8DM4212-A">NASDAQ</dei:SecurityExchangeName>
    <dei:SecurityExchangeName
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementClassOfStockAxis_dsgx_RightsToPurchaseCommonSharesMember_nSyv6TtEQEeeLUWWwLVVqw"
      id="Narr_JO3UNsTnF0GRdEJdcAiw9A">NASDAQ</dei:SecurityExchangeName>
    <dei:AnnualInformationForm
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_tap3GU5Pu0W32VpdqQIROw">true</dei:AnnualInformationForm>
    <dei:AuditedAnnualFinancialStatements
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_AUqdgj4vb0Gh3lkXMl_HOg">true</dei:AuditedAnnualFinancialStatements>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="0"
      id="Narr_OpnKSoahkEeR3m8m85m6zA"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84756210</dei:EntityCommonStockSharesOutstanding>
    <dei:EntityCurrentReportingStatus
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_41LmXy5dbUGw7ajd8xYhAg">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_QUGHDxsMm0KTtvyWMYPu4w">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityEmergingGrowthCompany
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_P4EY4oIBeUCPbgac2x2QqA">false</dei:EntityEmergingGrowthCompany>
    <dei:AuditorName
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_A_I3ekyLwkC_pYHYBTBMMA">KPMG LLP</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_5aaAPs4i2UGeKfglS7hPIA">Toronto, ON, Canada</dei:AuditorLocation>
    <dei:AuditorFirmId
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Narr_JCigwNZTWUCiltGXBB3OLg">85</dei:AuditorFirmId>
    <dei:EntityCentralIndexKey
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_defcLYsDyUqJMY80RNDEeQ_1_1">0001050140</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_KEBrTI3I8ku_KmiURK7CCA_2_1">--01-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_Tb_RcbCYukGdLE4POVyevA_9_1">2022</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_BPzr-1WzIEWP4do1QRdBSQ_10_1">FY</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_mbHvYxe3EUiUTAH4TxMkAQ_11_1">false</dei:AmendmentFlag>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="0"
      id="Hidden_oTuJBvmFPEiJzwnT12xkUA"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84756210</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_Zvp0J6SLfky_u_84LejsAQ"
      id="Hidden_X5IRyacMyEe63uLdWdhnyg">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_SwKl7wxg4U6E3uj88OkY1A"
      id="Hidden_H4Aki753xUGuQreNk3KAuw">P4Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ucbf_Mqi5E-GHs4jl2soJw"
      id="Hidden_R3HFVPmLxECS61adSjqHBQ">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_iiILgc48IEu3k37t4FnrZA"
      id="Hidden_eEcpTStYuEqXnki-TnMzpQ">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_0oTRyn6q_ESvDqkRHqwbiw"
      id="Hidden_HWyYO8ERp0Wr4ZxBm81I0w">P4Y</dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_rqml2znZlUqm4RPvFsDXeg"
      id="Hidden_MlLWcOJvI0Cji82e8NzJRw">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <dsgx:CashSettledRestrictedShareUnitsVestingPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_AwardTypeAxis_dsgx_CashsettledRestrictedSharePlanMember_xKtZmAwUnU66uUCT2654kw"
      id="Hidden_-ChMqGiq8EGz7VHoOSALbg">P3Y</dsgx:CashSettledRestrictedShareUnitsVestingPeriod>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_5VdpNuQirk-81zaOQK04WA"
      decimals="0"
      id="Hidden_v1hWYzs9B0OsbeIvMBY_nA"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">11</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_qVi9CDTjukeDzh6qfnf3_w"
      decimals="0"
      id="Hidden_pcGK0s4hq0-HLRSRmdjzvQ"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">13</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember_z7MAqE8efEW_Ldoeku3vXw"
      decimals="-5"
      id="Hidden_oRGbY52OSUKIW_NyZgdorw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">9300000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Hidden_TB-LMOBP7kaQwfz92D98Eg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7354000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_sX6rlRLnXkyx13SMZD0Cug_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">213437000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_V_BKgBF8AUmgLoCPM6-2Vg_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">133661000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_W09GlydGzEKDNEuFBVxWLw_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">41705000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_xTt-a43rfUyCx0rWiXmdFg_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">37206000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_JpTcxs94MUOoyy9pNXP6EA_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14075000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_q0Jx9VOO9k235tCVEi7v0w_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14830000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_bCfxoHCTBk-m6cT106PlPA_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">21974000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_tqRgEKKvG0mkwj7hByQzTw_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">16939000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:InventoryNet
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_5PPd2FirxEKUVqQe9psbIA_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">868000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_rxq5nwBCX0Wj-bgjc1HcHA_10_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">429000</us-gaap:InventoryNet>
    <us-gaap:AssetsCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_GR3QpMPt_E2AVps9IqVlWw_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">292059000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_EBFfrMCmIkyfuEXu6GwvpQ_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">203065000</us-gaap:AssetsCurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_OuhqEcZdcEqEULqZ_i6dYw_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">18652000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_UJ6w0EvL8U2Qydx_QPi01Q_12_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">15550000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_C0O7Bu5iS0SE4Y6LBeFkIQ_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10817000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_hk0YaJQ9LUSsOQMeqrDxNA_13_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12089000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_xJCP52u1lkOx-tynk59L6Q_14_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10571000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_-ytAt2cFnE6H9si-uqpnPw_14_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12165000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_RmKy1B1720WMQm42Oz846w_15_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14962000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_Niyx8O2AM0yGPwwzXgfL_Q_15_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">15216000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_wNivDzcsaU-tC6AsqteHxg_16_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">229609000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_0bLOeLO1Uk6RxKO3wBEHtg_16_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">239992000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_Gfd0UNqpTUWXNjMvKGoMoQ_17_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">608761000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_sujD4dLkFEySEIJ9u91u8g_17_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">565177000</us-gaap:Goodwill>
    <us-gaap:Assets
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_H5svJPgtmEeiLXzX4J1Gbg_18_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1185431000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_hhDLFLJy7EitX5COL6Nkgw_18_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1063254000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_3jdJwpfgmEuS9v9fH5KScw_21_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10566000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_963qPEZG7EyyjKGRJo71JQ_21_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7955000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_vpGM010kT0Ktfen0XPjyRA_22_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">56442000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_8G9vC0d98kmOohpLhYK2MQ_22_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">38879000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_yLAHEO2TxEuGAGrSu6WenA_23_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4029000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_WHIAYTmzG0O4ehcyamTKMw_23_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4168000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_9Ovvr9vFxE6sx4yyZeUHDw_24_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5616000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_4QjN0cD6MUK5H-feUcCkyQ_24_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3383000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_WeFF42lkcUyuq9lK5V40Rw_25_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">56780000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_Gel41IhJtUm4Tjbg37ayRw_25_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">49878000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_s2N5kLFrn0CG-JTnmh0pfw_26_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">133433000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_t41MNQfCz0ejJTP9C2PsKg_26_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">104263000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_p0-WJk5hF0SUNOdQjVZ_OA_28_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7382000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_WZLiTF9TsUOgPKXPYbUQDQ_28_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8895000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredRevenueNoncurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_xhVWlB7tcE63V5p5uzRkwA_29_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1920000</us-gaap:DeferredRevenueNoncurrent>
    <us-gaap:DeferredRevenueNoncurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_ZxZfzr9huEiMuxSNOyloPw_29_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1413000</us-gaap:DeferredRevenueNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_vau1VAmZDUae-QdVa5Fw7A_30_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7354000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_BR7KMCF8XEmyf-zr1-JRSg_30_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8230000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_eZh08BN2Rk-k-fkup_BvAQ_31_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">35523000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_ib534hMTqEec_lo9jgiOAw_31_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">29385000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:Liabilities
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_xaTVLRZV506WF9ng9cXwjQ_32_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">185612000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_mAZ_kpSGKkyv_5F-4JfUBw_32_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">152186000</us-gaap:Liabilities>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="0"
      id="Narr_Br4Cd_0r4k2OK3ksCK0zBw"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84756210</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="0"
      id="Narr_sgZ3I-FOIE2qmcx7_nBYmw"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84494658</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValue
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_abyNbT0a1k2dANkimz_YKg_35_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">536297000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_OPhFQN32OE6AsIUZnbcNHg_35_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">531825000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_dUWzZZiR5ky21JHihs5VdQ_36_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">473303000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_J2XM7ah1ckWHkZIO6uFSQg_36_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">464102000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_lHuCUnWVWUSjYV_w90kTIQ_37_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-12393000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_PXGbGHQ780uC7HMoPOMZwA_37_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1189000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_nOpShL64nUuK1Gqh3l_8ww_38_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2612000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_r9DB1rEIzUOYDgOFzZqQ7A_38_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-83670000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_w3uAhRYHcU2h9lRV8x67WA_39_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">999819000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_Qh-MLnNzf065rYr1Uonlqw_39_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">911068000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_nnHnKogKRkOYjHu9tavC4w_40_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1185431000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_jLaO29cZXkWRyB3NJ6FvuA_40_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1063254000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_75UtIgbdCkOs3LhOLjqL5Q_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">424690000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_uwTou7suhUGagHciVvwACw_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">348664000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_zVuJRIDdLUCKEKObguiTog_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">325791000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_DNHuZQdoJ0GbS6TS4tcOCA_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">101810000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_g4JFyOgJNkOt3RqbK_L_2Q_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">89910000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_P1MLxeREGUGuVIOKpl6Erw_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">85721000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_re6NmXH8PU-NPh4UclRlFw_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">322880000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_TJdYs-a1Y0avhgIiHuYTwg_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">258754000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_7axbgWBV4Eyxty0jBIL76Q_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">240070000</us-gaap:GrossProfit>
    <us-gaap:SellingAndMarketingExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_mBE2_v1xD0-yiTLvDf8Ytw_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">46895000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_o_zPqIGPKU-r22eIPohfyQ_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">38785000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_cfudgjVtWECSam4-2c3rxg_8_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">40389000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_ffdx2jTj6EuOm5lScOv7YA_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">62570000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_YNdapQdN8U-r9p0cbnY8vQ_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">54066000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_OTu0kuI0GUWUAepIc_56vQ_9_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">53513000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_y8SzFnIhUUGyo0htKV4XHA_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">44454000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_qdguXq9-4EW-3ncTNg9TsA_10_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">36267000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_IWw7SryPL0SvrGUyTB_KQQ_10_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">34628000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:OtherNonoperatingExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_fDKkmgND4EK__vZ-VApVqg_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6428000</us-gaap:OtherNonoperatingExpense>
    <us-gaap:OtherNonoperatingExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_oWvCZk7wbUGVY0DlG-Bziw_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2335000</us-gaap:OtherNonoperatingExpense>
    <us-gaap:OtherNonoperatingExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_orVOctGxq0ej6zCbrNYqfQ_11_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3797000</us-gaap:OtherNonoperatingExpense>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_Y5zGDx609USuT0aMVMcQcw_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">59099000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_zH4fv0HGRE62kPDXB0jbog_12_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">55905000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_JWZiYD0zmEGttQnrJndhNA_12_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">55485000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:OperatingExpenses
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_8dxqZNKS7UuK2vW9366qbw_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">219446000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_L2eGzcXVA0yPQMKZ874DCw_13_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">187358000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_KT2tyreF0ESfBcLWjFppWg_13_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">187812000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_gPAPtYVNuEy_nSMW-hPLaA_14_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">103434000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_kvnZfzebXEGSGVg_373bSA_14_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">71396000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_nwCuH7MSa0-dfOtto0DivQ_14_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">52258000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_3fbD2_sJf02YTTEv_uCwtw_15_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1123000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_n52jKhV8tkm-hL_MR1TMXg_15_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1186000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_darqKUf1XUuVqMTEuTniGg_15_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4416000</us-gaap:InterestExpense>
    <us-gaap:InvestmentIncomeNet
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_pUGXNlMaVUW_JRPTh8GfTw_16_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">299000</us-gaap:InvestmentIncomeNet>
    <us-gaap:InvestmentIncomeNet
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_zRhjm3wgl0mciVyN2b9oJg_16_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">159000</us-gaap:InvestmentIncomeNet>
    <us-gaap:InvestmentIncomeNet
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_f_fgQA3jY0u3Z21ouWqI9w_16_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">193000</us-gaap:InvestmentIncomeNet>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_yVkTdFt-W0eLEPZrter2Xw_17_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">102610000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_7e3Qe4AJvE-qUtKJfQ9IGQ_17_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">70369000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_ok42GGnc0ECeGE--EYAcmg_17_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">48035000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_792tZz3uQ0iqpG2Y10eNPg_19_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14814000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_OH3Iero5r0m_L_h8mS7_bQ_19_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3746000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_3Y0sfAfbt0uql4ephFr6fQ_19_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5295000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc__UU7OrwA8k61EvtTcwJNYw_20_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1514000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_eJ1OwZFaVUa9K25FWqE9xA_20_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14523000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_xN-3CPo2G0icGSjUduUjvg_20_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5743000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_FDqf-608Y0eGdBNDCdsMQQ_21_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">16328000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_3_V3wLA1TEijFqzRnlobng_21_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">18269000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_8J9ksnY4ZUa3Z-FaHHrC-Q_21_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11038000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_-o7eVmMMnkCJNO3AHnwHFQ_22_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">86282000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_g1gw3nNRykCR9D4NyqaTow_22_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">52100000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_x6uvw83YRkKq1rYglqetew_22_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">36997000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Tc_Z0OI6Ioy20u93zhCU8qkow_24_2"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">1.02</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Tc_jZzUOnxY50WZMkj1E61bIg_24_4"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.62</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="2"
      id="Tc_lIqD-NmYSE2d0gsE4pP1Lw_24_6"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.45</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Tc_o6IEgyE4mkyga7cVHUl5ow_25_2"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">1.00</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Tc_oc3fBNt4K0awmLFYOJ-ZXA_25_4"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.61</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="2"
      id="Tc_tAE1BMCwnku_mlmtzJBuvg_25_6"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.45</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_UhBLzxZY60GNk9EQsi5Y3Q_27_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84591000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_aHfx0Quv0UK-T6Kjd_BSSw_27_4"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84360000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_6SnE3V34vkKOdlZFsWHBNg_27_6"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">81659000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_xyW2m7TetkObEut31M2ZxA_28_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">86200000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_JLzAXr1EnUSOs12F9jPG2Q_28_4"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">85756000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_sIMgm1xgAkysrWc-zlYcRw_28_6"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">82867000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_DHGtfCH7dUK7U3RD3TxRpw_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">86282000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_rw1MUzZIuU63693nmBCYlA_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">52100000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_5wYhP-ukjkqV60XOOiKNAg_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">36997000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Narr_yemUmwKhek2FNbnIzIRxLA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">348000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Narr_c6szyhOtVUmuv9dmPPA5Vw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">290000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Narr_-7lZ8X8PwEaGE3MgBZ40uQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">132000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_JM_iAJ1fCEm0vikPaUbTHw_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-11204000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_0XyqL30y5U6dbxg5E_mIIg_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">24755000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_gF9sTq6atkGgXNN8-7ZR4A_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-743000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_UOjYu9KpVEq9slhXheotUw_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-11204000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_wXJCwr-COku2_Xd2tzkLhA_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">24755000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_w1_IbtsvnUW9Fbsm2dtEig_8_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-743000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_eVhbBidouk6arq9Dr6ucxQ_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">75078000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_7d-yM645Bkq5cPyG8hPOHw_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">76855000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_osGt0RUZSU-H1aQJxLnddg_9_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">36254000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_4hAMxiTAoUetR67y6OzN9Q"
      decimals="-3"
      id="Tc_knSvR7nhIEe2snwIYiyE5w_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">531825000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_Z2f9Xp48hUGeQW4tvacMlg"
      decimals="-3"
      id="Tc_8JORWkomo0O2HNEKAerNLQ_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">524154000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_uILb96-R5U-JARfsjROcqQ"
      decimals="-3"
      id="Tc_94vIJ-bUcU6OECutzw1epQ_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">276753000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_mfIYXhgIyEutGPk9clKJUg"
      decimals="-3"
      id="Tc_mYDx_6svCUmcqLXPUyIRcg_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4472000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_QIs7W9xyCkuO8AzVgnZu3g"
      decimals="-3"
      id="Tc_usHd-7N9PUWD-mk8HFkODw_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7671000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_TausbxT04kSdrcoQckjP_A"
      decimals="-3"
      id="Tc_GfiIb-Vg4EqUOCrUGFpI6w_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1788000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_TausbxT04kSdrcoQckjP_A"
      decimals="-3"
      id="Tc_ammrAmcAvkCEd2jCnRMlUw_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">236568000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueAcquisitions
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_TausbxT04kSdrcoQckjP_A"
      decimals="-3"
      id="Tc_jCVN4NJahkOAQ69PagEiPg_8_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">9045000</us-gaap:StockIssuedDuringPeriodValueAcquisitions>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_AHDzDBNNwEKdzsCpyCG1xQ"
      decimals="-3"
      id="Tc_Y49bVgSZRk25kS12B1vbVQ_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">536297000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_4hAMxiTAoUetR67y6OzN9Q"
      decimals="-3"
      id="Tc__n27Y3q9fki5D9yYKkgaUQ_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">531825000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_Z2f9Xp48hUGeQW4tvacMlg"
      decimals="-3"
      id="Tc_-v-Lo8TZNU2oGF4KEHtZUw_9_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">524154000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_OOQKiMlEGE2aJSEwD48vRQ"
      decimals="-3"
      id="Tc__5hyTaGQV065w218u1Chig_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">464102000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_olNbahUDQU6XjkvjTgYGmw"
      decimals="-3"
      id="Tc_5V4ZjlA3eEqkg0RcEu_t-g_12_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">459269000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_jvhlfo0xuUS0JRb6sAjEdw"
      decimals="-3"
      id="Tc_qUWFUqkNL0uJEMMIUyxXwA_12_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">454722000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_BrRAvzRdC0KOXdi8b39Vcw"
      decimals="-3"
      id="Tc_EH_P9KzYC0O0RBOU0bhipA_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11017000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nJijUlDHfE2mcW48hAEXwQ"
      decimals="-3"
      id="Tc_HRjkgxkiekGqIQ3tqZ1S5A_13_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6313000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_eoj-x1FNVEeX-g8-deMtaw"
      decimals="-3"
      id="Tc_sRCytUupp0ujFfF8XSCaDA_13_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4909000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_BrRAvzRdC0KOXdi8b39Vcw"
      decimals="-3"
      id="Tc_5Okvs7XESEiBfRmWBKA_hw_14_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1816000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_nJijUlDHfE2mcW48hAEXwQ"
      decimals="-3"
      id="Tc_OK6eC52IsUOAlY8-PTQVBg_14_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1480000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_eoj-x1FNVEeX-g8-deMtaw"
      decimals="-3"
      id="Tc_YXBHs5rhe0mYX-8MZPRCng_14_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-362000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_xtKcHXK14km9wzwjAcFOzg"
      decimals="-3"
      id="Tc_CZ6xHO_PdkCdH6IP1SQpFw_15_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">473303000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_OOQKiMlEGE2aJSEwD48vRQ"
      decimals="-3"
      id="Tc_KI6VTzhyVECYT_gE5RbzRQ_15_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">464102000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_olNbahUDQU6XjkvjTgYGmw"
      decimals="-3"
      id="Tc_9i5nSFOvCki5sLEKHGB7RA_15_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">459269000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_Wz9iH8wYd0O-Fu6ZdBYLBA"
      decimals="-3"
      id="Tc_Ght096_DgUqfkUVq-cHdDw_18_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1189000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_A8gi74q9xUKVG3uPnmO1Qg"
      decimals="-3"
      id="Tc_rYxzaGqmFEGkAL_ymtacGg_18_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-25944000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_tdOf6WBla0SheUcR2Mm5NQ"
      decimals="-3"
      id="Tc_OyNMqlq1Skq4vMsVwyrLvg_18_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-25201000</us-gaap:StockholdersEquity>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_12ucPReGf06Y2zWrjoJYHg"
      decimals="-3"
      id="Tc_ShAO0DM-w0CiOoeJaOIl7Q_19_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-11204000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_sxp2ND6Lz0-6_yRAr2_0iw"
      decimals="-3"
      id="Tc_z-P7EQ3OBE6iT4CeYla6nw_19_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">24755000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_5n76_Ec7VUy6Fl_01TXv2A"
      decimals="-3"
      id="Tc_tctYRpg5zUiDvnD62xcQXQ_19_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-743000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_7CYQONsmVUWWo6uaQqO1eQ"
      decimals="-3"
      id="Tc_xw6CJS90Ik-l0XoNHV8ecg_20_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-12393000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_Wz9iH8wYd0O-Fu6ZdBYLBA"
      decimals="-3"
      id="Tc_J8FUBe-3dku_8piIGqtoow_20_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1189000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_A8gi74q9xUKVG3uPnmO1Qg"
      decimals="-3"
      id="Tc_3OBhF5xKxUK3eP93wZMQXA_20_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-25944000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_gP_9T311zEGHA0dmiVT16w"
      decimals="-3"
      id="Tc_CES-W-hS-0uqhvKyf7GeCw_23_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-83670000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_oaO7TzfnxESITGUtdBa0Xg"
      decimals="-3"
      id="Tc_Rk5ds-yEekGJ3YENfT9TyQ_23_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-135770000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xXAHuj9_7kumbyLN3SnhBQ"
      decimals="-3"
      id="Tc_LIHhGbBnckmDx8a-395f4A_23_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-172767000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_OjLJ9SGrykm8RexqufFiSQ"
      decimals="-3"
      id="Tc_PCcVEsbsUkqwRuz88U3c5Q_24_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">86282000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_piMSALILw0-3-Lt6TVCDSg"
      decimals="-3"
      id="Tc_xNZELncDSkmtDBHc1mCKSw_24_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">52100000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_Z5yZxRLcU0CuWU92iGfJJA"
      decimals="-3"
      id="Tc_MQJGLnX43kqlL1ZqjQ0SKQ_24_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">36997000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_0NJb6Rrf9E2XDSzf7H6-Mg"
      decimals="-3"
      id="Tc_xuwAc-qYQkGllhsVDzYOAg_25_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2612000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_gP_9T311zEGHA0dmiVT16w"
      decimals="-3"
      id="Tc_33XcOce8HkO4S-OpAlt4Lg_25_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-83670000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_oaO7TzfnxESITGUtdBa0Xg"
      decimals="-3"
      id="Tc_UZtET0UyDEOSh9ubRnSa4g_25_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-135770000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_d9gto_jlrkChlxiBynr_YA_27_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">999819000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_KjYk1WyGIkmuRXZexIrFow_27_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">911068000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="-3"
      id="Tc_A1t6gLjZNkWUK3gSyz3hFA_27_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">821709000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_Io-uam5K9EanpSp-rzx21A_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">86282000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_myP_yRYULUuS0Leu_-z7HA_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">52100000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_fPD5afNv6U-TYgTY3rRpQQ_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">36997000</us-gaap:NetIncomeLoss>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_CdazaD_swEiSJnxAzvu0xQ_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5129000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_eyOnJYBEl0aVUaG_OqjNLw_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5757000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_qOZXrGlBi06bUah3uQxYwg_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6037000</us-gaap:Depreciation>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc__5HxmBtf-kCv298e4N-I0w_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">59099000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_C3TQtHDE6EOVklBd84Beng_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">55905000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_Og_x9g8Mc0CeInFupos8xg_8_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">55485000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_zu-EBNWBqk-HztAjCpDGpw_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11017000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_bTyY4mp-vE6t7eXFiWEVAQ_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6313000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_JUMs1itax0K-Gp123_ip4g_9_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4909000</us-gaap:ShareBasedCompensation>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_oKwkTfH8ekG28VykfGjQnw_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-308000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_DZ1rTrjO3UyV2niwSQctHg_10_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-207000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_xiyUo5mD-kuG7CAb52A4aA_10_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-337000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_yFBanbI1Iki3nku7r8PPlw_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1514000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_El4y0CFC9UaoJ7g_gC10BA_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14523000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_gbvgdi16A0CiLYdOj2P4-w_11_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5743000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_7aBGANh4L0yLFbXg2jJIwA_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-12789000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_0PCTh2K_u02c8UgEGhiYWw_12_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3575000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_C52MBqqGT0-zOT3F19KipQ_12_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5256000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc__2suwVHG6kCMAbL-IrLuqg_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">176138000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_6e2Nw2vqRUmJMEs6x5OJjw_13_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">131230000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_ROIj_pmWnUq8ECaztLnnjg_13_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">104252000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_MO_S8wSjMEOn2h6azT0dcA_15_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4829000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_eyFmo3eiXUerfxGv2UZtiQ_15_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3759000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_h_BfT0blFE-w6UAlGB45qQ_15_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4900000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_r7i8DlzD-0-EPbeQhpmUAA_16_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">90278000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_lVAyAg4ENkKpmLg95vbO9w_16_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">48403000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_GBbD7m_Fv06xBsePOiznLg_16_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">292053000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_Z_AZmg31W0O0xyCKLJ8HqA_17_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-95107000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_lU3I0qst70e_CC3uTpUclA_17_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-52162000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_XvoNuUPtSkSL3eucYjoKRQ_17_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-296953000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromLinesOfCredit
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_znTkAKDNzUiuEpHuLUhLyQ_19_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10196000</us-gaap:ProceedsFromLinesOfCredit>
    <us-gaap:ProceedsFromLinesOfCredit
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_ps9Y1n9oXk-gnc2aAacXIg_19_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">297015000</us-gaap:ProceedsFromLinesOfCredit>
    <us-gaap:RepaymentsOfDebt
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_JURrqPxP_0GLGJJPnhTRDg_20_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1068000</us-gaap:RepaymentsOfDebt>
    <us-gaap:RepaymentsOfDebt
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_wvRxmmyDuUO_wkHFbf6P-A_20_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10793000</us-gaap:RepaymentsOfDebt>
    <us-gaap:RepaymentsOfDebt
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_d4oNa-h_mkaIgm541q1vRw_20_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">322634000</us-gaap:RepaymentsOfDebt>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_scJGDxoTfUeMGF_62S46fw_21_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">72000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_IIFIPDBGCkarA2lXuElzMw_21_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">40000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc__S22a59JSUeRENMUfZbhSQ_21_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1400000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_9I976xb7LUW42BYPmS3wIQ_22_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2656000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_8BbwfbQydk-IpjqgP0e4Sg_22_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6194000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_Gkk37Zeruk-g4fpjbxAyDA_22_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">237973000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_q4jvwc11hkKXLQ73h1GjhA_23_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">785000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_Z4Lvzw9esk6gKeVN_95Fhw_24_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1516000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_Ckz3izFyw0uf0dWv0e4rlg_24_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5557000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_JeEwiezgdkOVRfCYhjWnxQ_24_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">210169000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_HHb-xiUbYE2vnUNc3pn5sA_25_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-2771000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_drc05Sa6DkG5_iJI3NN3Ig_25_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4633000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_1rBcGbEWpkK0rjXA2Lc-xQ_25_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-363000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_rCeX5LNnkkmy0JQbjLZ3xg_26_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">79776000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_e9uHMhCqUEuMDk71YMOcOA_26_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">89258000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_r-vznhF8gkqlSXyCJ5hPuQ_26_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">17105000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_LuMy3R8eXUWsuBkzBADcEg_27_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">133661000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="-3"
      id="Tc_6mq2vdOiOEKkMiGcHw2GIQ_27_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">44403000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2019_uG_65RiDbkmgzyTBRRPLRA"
      decimals="-3"
      id="Tc_1Bd9wk-QskW_LphXmns9Xw_27_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">27298000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_0t9xQwtg90K98Kg4UCtG9Q_28_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">213437000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_tU6ydn4zA0aNwGssqphsKg_28_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">133661000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="-3"
      id="Tc_s7CfTFSm-E2u8aubQoD-Lg_28_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">44403000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:InterestPaidNet
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_qPbzmWMjz0ysfYK56TV1EA_30_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">89000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_oyrHhl8mYkiQifUyJ-qk6w_30_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3516000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_3PFjqOJIjkaovgrg6Be-sA_31_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12575000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_WyL7LiOZcUC7rsc2Jn4cZg_31_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8214000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_1UWbcbDRSkegLlGKomPMcA_31_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8946000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_p8AP9xRa60Gz1pee63ag4A">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;1&#160;- Description of the Business&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&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;/p&gt;</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_NDAPo5U9tkKbU5eEdLddrg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;2&#160;&#x2013;Basis of Presentation&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The accompanying 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 the US Securities and Exchange Commission (&#x201c;SEC&#x201d;) for the preparation of consolidated financial statements.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The world continues to experience a global pandemic related to the spread of the COVID-19 virus (the &#x201c;Pandemic&#x201d;). 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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Our fiscal&#160;year commences on February&#160;1&lt;sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt; of each&#160;year and ends on January&#160;31&lt;sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt; of the following&#160;year. Our fiscal&#160;year, which ends on January&#160;31, 2022, is referred to as the &#x201c;current fiscal&#160;year&#x201d;, &#x201c;fiscal 2022&#x201d;, &#x201c;2022&#x201d; or using similar words. Our previous fiscal&#160;year, which ended on January&#160;31, 2021, is referred to as the &#x201c;previous fiscal&#160;year&#x201d;, &#x201c;fiscal 2021&#x201d;, &#x201c;2021&#x201d; or using similar words. Other fiscal&#160;years are referenced by the applicable&#160;year during which the fiscal&#160;year ends. For example, &#x201c;2023&#x201d; refers to the annual period ending January&#160;31, 2023 and the &#x201c;fourth quarter of 2023&#x201d; refers to the quarter ending January&#160;31, 2023.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Basis of consolidation&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Foreign currency translation&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The US dollar is the presentation currency of the Company. Assets and liabilities of our subsidiaries are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses are translated into US dollars 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. On substantial liquidation of a foreign operation, the component of accumulated other comprehensive income relating to that particular foreign operation is recognized in the consolidated statements of operations.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The functional currency of each of our entities is generally the local currency in which they operate. Transactions incurred in currencies other than the local currency of an entity are converted to the local currency at the transaction date. Monetary assets and liabilities denominated in foreign currencies are re-measured into the local currency at the exchange rate in effect at the balance sheet date. All foreign currency re-measurement gains and losses are included in net income. For the&#160;year ended January&#160;31, 2022, foreign currency re-measurement loss of $0.3 million was included in net income (January&#160;31, 2021&#160;&#x2013; loss of $0.8 million; January&#160;31, 2020&#160;&#x2013; loss of $0.6 million).&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Use of estimates&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Preparing financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts that are reported in the consolidated financial statements and accompanying note disclosures. Although these estimates and assumptions are based on management&#x2019;s best knowledge of current events, actual results may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Estimates and assumptions are used when accounting for items such as allocations of the purchase price and the fair value of net assets acquired in business combination transactions, useful lives of intangible assets and property and equipment, revenue related estimates including determining the nature and timing of satisfaction of performance obligations, variable consideration, and other obligations such as product returns and refunds, allowance for doubtful accounts, collectability of other receivables, provisions for excess or obsolete inventory, determining the Company&#x2019;s incremental borrowing rate, restructuring accruals, fair value of stock-based compensation, assumptions embodied in the valuation of assets for impairment assessment, accounting for income taxes, valuation allowances for deferred income tax assets, realization of investment tax credits, uncertain tax positions and recognition of contingencies. Significant assumptions and judgment are used when determining the standalone selling price (&#x201c;SSP&#x201d;) of performance obligations in contracts with customers.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Cash&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Cash included highly liquid short-term deposits with original maturities of three&#160;months or less.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Financial instruments&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Fair value of financial instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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 due to their short maturities.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Derivative instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 &#x201c;Derivatives and Hedging&#x201d; (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments&#x2019; fair values are recognized in earnings. The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Foreign exchange risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Interest rate risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Depending on the type of advance under the available facilities, interest on such borrowings will be charged based on either i) Canada or US prime rate; or ii) Banker&#x2019;s Acceptance (BA); or iii) US dollar London Interbank Offer Rate (LIBOR); or iv) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Credit risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We are exposed to credit risk through our invested cash and accounts receivable. We hold our cash with reputable financial institutions. The lack of concentration of accounts receivable from a single customer and the dispersion of customers among industries and geographical locations mitigate our credit risk.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Equity risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. 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 Company does not hold derivatives for speculative purposes.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Provision for Credit Losses&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We are exposed to credit losses primarily through our trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Inventory&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Finished goods inventories are stated at the lower of cost and net realizable value. The cost of finished goods is determined on the basis of average cost of units.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Impairment of long-lived assets&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal&#160;years presented.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Goodwill and intangible assets&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We test for impairment of goodwill at least annually on October&#160;31&lt;sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt; of each&#160;year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our reporting unit&#x2019;s carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit. We completed the qualitative assessment during our third quarter of 2022 and concluded that it was more likely than not that the fair value of the goodwill was greater than the carrying value. As a result, no impairment of goodwill was recorded in fiscal 2022 (no impairments were recorded for fiscal 2021 or fiscal 2020).&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset 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 asset or asset groups is determined by discounting the expected related future cash flows.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Amortization of our intangible assets is generally recorded at the following rates:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:top;width:2.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:0pt;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;width:47.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:'Arial','Helvetica','sans-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.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_X5IRyacMyEe63uLdWdhnyg;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;two&lt;/span&gt;&lt;/span&gt; to twenty years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Existing technologies&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_H4Aki753xUGuQreNk3KAuw;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;four&lt;/span&gt;&lt;/span&gt; to twelve years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_R3HFVPmLxECS61adSjqHBQ;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt; to fifteen years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_eEcpTStYuEqXnki-TnMzpQ;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;two&lt;/span&gt;&lt;/span&gt; to twelve years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Property and equipment&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Property and equipment is recorded at cost.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Effective February&#160;1, 2020, we changed our accounting method for property&#160;&amp;amp; equipment from the declining balance method of depreciation to the straight-line method of depreciation to better reflect the consumption of the assets&#x2019; economic benefits. Our change in the method of depreciation is considered a change in accounting estimate effected by a change in accounting principle and has been applied prospectively. The change in the method of depreciation did not have a material impact on our results of operations.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Depreciation of our property and equipment is generally recorded at the following rates:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:top;width:2.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:0pt;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;width:47.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:'Arial','Helvetica','sans-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:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Computer equipment and software&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over 1 to 13 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over 3 to 14 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over lesser of useful life or term of lease&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Equipment installed with customers&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over 3 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Leases&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;At the inception of a contract we assess whether a contract is, or contains, a lease based on whether the contract conveys the right to control the use of an identified asset for a period of time in exchange for consideration. We have building lease agreements with lease and non-lease components, which are accounted for separately. For computer equipment and vehicle leases, we have elected to account for the lease and non-lease components as a single lease component.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We recognize a right-of-use (&#x201c;ROU&#x201d;) asset and a lease liability at the lease commencement date. The ROU asset is initially measured based on the initial amount of the lease liability adjusted for any lease payments made at or before the commencement date, plus any initial direct costs incurred and less any lease incentives received. The assets are depreciated to the earlier of the end of the useful life of the ROU asset or the lease term using the straight-line method as this most closely reflects the expected pattern of consumption of the future economic benefits. The lease term includes periods covered by an option to extend if the Company is reasonably certain to exercise that option.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The lease liability is initially measured at the present value of the future lease payments at the commencement date, discounted using the interest rate implicit in the lease or, if that rate cannot be readily determined, the Company&#x2019;s incremental borrowing rate. As most of our leases do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;The lease liability is measured at amortized cost using the effective interest method. It is remeasured when there is a change in future lease payments arising from a change in an index or rate, if there is a change in the Company&#x2019;s estimate of the amount expected to be payable under a residual value guarantee, or if the Company changes its assessment of whether it will exercise a purchase, extension or termination option. When the lease liability is remeasured, a corresponding &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;adjustment is made to the carrying amount of the ROU asset, or is recorded in profit or loss if the carrying amount of the ROU asset has been reduced to zero.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12&#160;months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Revenue recognition&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the SSP. SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. In addition to these general policies, the specific revenue recognition policies for each major category of revenue are included below.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;License&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Revenues for distinct licenses for on-premise or hosted software are derived from perpetual licenses granted to our customers for the right to use our software products. License revenues are billed on the effective date of a contract and revenue is recognized at the point in time when the customer is provided control of the respective software.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Services&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Services, which allow customers to access hosted software over a contract term without taking possession of the software, is provided on a subscription and/or transactional fee basis. Revenues from hosted software subscriptions and maintenance are typically billed annually in advance and revenue is recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Transaction fees are typically billed and recognized as revenue on a&#160;monthly basis based on the customer usage for that period.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Professional Services&#160;&amp;amp; Other&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Professional services are comprised of consulting, implementation and training services related to our services and products. These services are generally considered to be separate performance obligations as they provide incremental benefit to customers beyond providing access to the software. Professional services are typically billed on a time and materials basis and revenue is recognized over time as the services are performed. For professional services contracts billed on a fixed price basis, revenue is recognized over time based on the proportion of services performed. Revenue related to customer reimbursement of travel related expenses is recognized on a gross basis as incurred. Other revenues include hardware revenue and is generally billed, and revenue is recognized, when control of the product has transferred under the terms of an enforceable contract.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of its promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Costs to obtain a contract with a customer&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between &lt;span style="-sec-ix-hidden:Hidden_HWyYO8ERp0Wr4ZxBm81I0w;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;four&lt;/span&gt;&lt;/span&gt; to six&#160;years, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one&#160;year or less.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Contract assets and liabilities&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s)&#160;and relates primarily to prepaid maintenance or other recurring services. Deferred revenues are relieved as revenue is recognized. Contract assets and deferred revenues are reported on a contract-by-contract basis at the end of each reporting period.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Research and development costs&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Stock-based compensation plans&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Stock Options&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Employee stock options generally vest over a five-year period starting from the grant date and expire seven&#160;years from the grant date. Non-employee directors&#x2019; and officers&#x2019; stock options generally have quarterly vesting over a &lt;span style="-sec-ix-hidden:Hidden_MlLWcOJvI0Cji82e8NzJRw;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt; to five-year period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;The fair value of employee stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Performance&#160;&amp;amp; Restricted Share Units&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (&#x201c;PSUs&#x201d;) and restricted share units (&#x201c;RSUs&#x201d;).&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;PSUs vest at the end of a three-year performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&#x201c;TSR&#x201d;) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading&#160;days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire ten&#160;years from the grant date. New shares are issued from treasury upon the redemption of a PSU.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;PSUs are measured at fair value estimated using a Monte Carlo Simulation approach. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;RSUs vest annually over a three-year period starting from the grant date and expire ten&#160;years from the grant date. We issue new shares from treasury upon the redemption of an RSU.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Deferred Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Our board of directors adopted a deferred share unit plan effective as of June&#160;28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (&#x201c;DSUs&#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading&#160;days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none or a&#160;percentage of the eligible director&#x2019;s fees which would otherwise be payable in cash. If a director has invested less than the minimum amount of equity in Descartes, as prescribed from time to time by the board of directors, then the director must take at least 50% of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Cash-Settled Restricted Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Our board of directors adopted a cash-settled restricted share unit plan effective as of May&#160;23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&#x201c;CRSUs&#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading&#160;days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over &lt;span style="-sec-ix-hidden:Hidden_-ChMqGiq8EGz7VHoOSALbg;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt; to five-year periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30&#160;days following a vesting date and in any event prior to December&#160;31&lt;sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt; of the calendar&#160;year in which a vesting date occurs. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Business combinations&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We apply the provisions of ASC Topic 805, &#x201c;Business Combinations&#x201d; (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one&#160;year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, &#x201c;Exit or Disposal Cost Obligations&#x201d; (Topic 420) and are accounted for separately from the business combination.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Income taxes&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We use the liability method of income tax allocation to account for income taxes. Deferred tax assets and liabilities arise from temporary differences between the tax bases of assets and liabilities and their reported amounts in the consolidated financial statements that will result in taxable or deductible amounts in future&#160;years. These temporary differences are measured using enacted tax rates. A valuation allowance is recorded to reduce deferred tax assets to the extent that we consider it is more likely than not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes.&#160;The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Earnings per share&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Basic earnings per share is calculated by dividing net income by the weighted average number of common shares outstanding during the period. Diluted earnings per common share is calculated by dividing net income by the sum of the weighted average number of common shares outstanding and all additional common shares that would have been &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;outstanding if potentially dilutive common shares had been issued during the period. The treasury stock method is used to compute the dilutive effect of stock-based compensation.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Recently adopted accounting pronouncements&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;In February&#160;2016, the FASB issued Accounting Standards Update 2016-02, &#x201c;Leases (Topic 842)&#x201d; (&#x201c;ASU 2016-02&#x201d;) and issued subsequent amendments to the initial guidance during 2018, collectively referred to as &#x201c;ASC 842&#x201d;. These updates supersede the lease guidance in ASC Topic 840, &#x201c;Leases&#x201d; and require the recognition of lease assets and lease liabilities by lessees for most leases previously classified as operating leases under ASC Topic 840. Leases will continue to be classified as either operating or finance. ASC 842 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2018, which was our fiscal&#160;year that began on February&#160;1, 2019 (fiscal 2020). The Company adopted ASC 842 as of February&#160;1, 2019 using the cumulative effect method.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;As permitted under ASC 842, we have elected to apply the practical expedient to carry forward our current assessments of whether a contract contains a lease, lease classification, remaining lease terms and amounts capitalized as initial direct costs. We have also elected to apply the practical expedient not to recognize right-of-use (ROU) assets and lease liabilities for short-term leases that have a lease term of 12&#160;months or less. The adoption of ASC 842 resulted in an increase to ROU assets and lease liabilities of $10.4 million as of February&#160;1, 2019. The adoption of ASC 842 did not have a material impact on either our consolidated statement of operations or our consolidated statement of cash flows.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;In June&#160;2016, the FASB issued Accounting Standards Update 2016-13, &#x201c;Financial Instruments&#160;&#x2013; Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments&#x201d; (&#x201c;ASU 2016-13&#x201d;) and issued subsequent amendments to the initial guidance during the 2019 calendar&#160;year, collectively referred to as &#x201c;ASC 326&#x201d;. ASC 326 requires the measurement and recognition of expected credit losses for financial assets held at amortized cost. ASC 326 replaces the existing incurred loss impairment model with an expected loss model which requires the use of forward-looking information to calculate credit loss estimates. ASC 326 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021).&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The Company is exposed to credit losses primarily through its trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions. The Company adopted ASC 326 as of February&#160;1, 2020 using the cumulative effect method and therefore the comparative information has not been restated. The adoption of ASC 326 did not have a material impact on our results of operations or disclosures.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;In January&#160;2017, the FASB issued Accounting Standards Update 2017-04, &#x201c;Intangibles&#160;&#x2013; Goodwill and Other (Topic 350): Simplifying the Test for Goodwill Impairment&#x201d; (&#x201c;ASU 2017-04&#x201d;). ASU 2017-04 simplifies how an entity is required to test goodwill for impairment. ASU 2017-04 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;In August&#160;2018, the FASB issued Accounting Standards Update 2018-15, &#x201c;Intangibles&#160;&#x2013; Goodwill and Other&#160;&#x2013; Internal-Use Software (Subtopic 350-40): Customer&#x2019;s Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract&#x201d; (&#x201c;ASU 2018-15&#x201d;). ASU 2018-15 aligns the requirements for capitalizing implementation costs incurred in a hosting arrangement that is a service contract with the requirements for capitalizing implementation costs incurred to develop or obtain internal-use software. ASU 2018-15 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;In December&#160;2019, the FASB issued Accounting Standards Update 2019-12, &#x201c;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes&#x201d; (&#x201c;ASU 2019-12&#x201d;). ASU 2019-12 simplifies how an entity accounts for income taxes. ASU 2019-12 is effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2020, &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;which is our fiscal&#160;year that began on February&#160;1, 2021 (fiscal 2022). The Company adopted this guidance in the first quarter of fiscal 2022. The adoption of this guidance did not have a material impact on our results of operations or disclosures.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Recently issued accounting pronouncements&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&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;/p&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_PPpwnwyGxUyi_6Mt1mlAjA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The accompanying 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 the US Securities and Exchange Commission (&#x201c;SEC&#x201d;) for the preparation of consolidated financial statements.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The world continues to experience a global pandemic related to the spread of the COVID-19 virus (the &#x201c;Pandemic&#x201d;). 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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Our fiscal&#160;year commences on February&#160;1&lt;sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt; of each&#160;year and ends on January&#160;31&lt;sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt; of the following&#160;year. Our fiscal&#160;year, which ends on January&#160;31, 2022, is referred to as the &#x201c;current fiscal&#160;year&#x201d;, &#x201c;fiscal 2022&#x201d;, &#x201c;2022&#x201d; or using similar words. Our previous fiscal&#160;year, which ended on January&#160;31, 2021, is referred to as the &#x201c;previous fiscal&#160;year&#x201d;, &#x201c;fiscal 2021&#x201d;, &#x201c;2021&#x201d; or using similar words. Other fiscal&#160;years are referenced by the applicable&#160;year during which the fiscal&#160;year ends. For example, &#x201c;2023&#x201d; refers to the annual period ending January&#160;31, 2023 and the &#x201c;fourth quarter of 2023&#x201d; refers to the quarter ending January&#160;31, 2023.&lt;/p&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_TqdcrGeVbUa9XqF0axGtkg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Basis of consolidation&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.&lt;/p&gt;</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_746vSPBc3U6Dck4osm8F9Q">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Foreign currency translation&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The US dollar is the presentation currency of the Company. Assets and liabilities of our subsidiaries are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses are translated into US dollars 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. On substantial liquidation of a foreign operation, the component of accumulated other comprehensive income relating to that particular foreign operation is recognized in the consolidated statements of operations.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The functional currency of each of our entities is generally the local currency in which they operate. Transactions incurred in currencies other than the local currency of an entity are converted to the local currency at the transaction date. Monetary assets and liabilities denominated in foreign currencies are re-measured into the local currency at the exchange rate in effect at the balance sheet date. All foreign currency re-measurement gains and losses are included in net income. For the&#160;year ended January&#160;31, 2022, foreign currency re-measurement loss of $0.3 million was included in net income (January&#160;31, 2021&#160;&#x2013; loss of $0.8 million; January&#160;31, 2020&#160;&#x2013; loss of $0.6 million).&lt;/p&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-5"
      id="Narr_tvI39nsVEESV_wLV1eWlKw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">300000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-5"
      id="Narr_tTQtGqpaOUyTGQpUXy5dPQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">800000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-5"
      id="Narr_alTvnh0-ukyGvybxx883wA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">600000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:UseOfEstimates
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_5mCSy2_LQUqBq_tgaaeUZw">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Use of estimates&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Preparing financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts that are reported in the consolidated financial statements and accompanying note disclosures. Although these estimates and assumptions are based on management&#x2019;s best knowledge of current events, actual results may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Estimates and assumptions are used when accounting for items such as allocations of the purchase price and the fair value of net assets acquired in business combination transactions, useful lives of intangible assets and property and equipment, revenue related estimates including determining the nature and timing of satisfaction of performance obligations, variable consideration, and other obligations such as product returns and refunds, allowance for doubtful accounts, collectability of other receivables, provisions for excess or obsolete inventory, determining the Company&#x2019;s incremental borrowing rate, restructuring accruals, fair value of stock-based compensation, assumptions embodied in the valuation of assets for impairment assessment, accounting for income taxes, valuation allowances for deferred income tax assets, realization of investment tax credits, uncertain tax positions and recognition of contingencies. Significant assumptions and judgment are used when determining the standalone selling price (&#x201c;SSP&#x201d;) of performance obligations in contracts with customers.&lt;/p&gt;</us-gaap:UseOfEstimates>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_s6RDNSoZ90253Ig4UytWew">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Cash&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Cash included highly liquid short-term deposits with original maturities of three&#160;months or less.&lt;/p&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_n2xiG2w1kkOvu1cFMyaXcA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Financial instruments&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Fair value of financial instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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 due to their short maturities.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Derivative instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 &#x201c;Derivatives and Hedging&#x201d; (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments&#x2019; fair values are recognized in earnings. The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Foreign exchange risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Interest rate risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Depending on the type of advance under the available facilities, interest on such borrowings will be charged based on either i) Canada or US prime rate; or ii) Banker&#x2019;s Acceptance (BA); or iii) US dollar London Interbank Offer Rate (LIBOR); or iv) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Credit risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We are exposed to credit risk through our invested cash and accounts receivable. We hold our cash with reputable financial institutions. The lack of concentration of accounts receivable from a single customer and the dispersion of customers among industries and geographical locations mitigate our credit risk.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Equity risk&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. 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 Company does not hold derivatives for speculative purposes.&lt;/p&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_tfKX0YJV5kGX_UvoNQWU2w">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Provision for Credit Losses&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We are exposed to credit losses primarily through our trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions.&lt;/p&gt;</us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_JgzH7NTwpUieOzf5K3v2NA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Inventory&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Finished goods inventories are stated at the lower of cost and net realizable value. The cost of finished goods is determined on the basis of average cost of units.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.&lt;/p&gt;</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_rd7uz3xtaU-vHe8-41ibJg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Impairment of long-lived assets&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal&#160;years presented.&lt;/p&gt;</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock>
    <us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_EZcW0miK6UqCE_bnc_01Yg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Goodwill and intangible assets&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We test for impairment of goodwill at least annually on October&#160;31&lt;sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt; of each&#160;year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our reporting unit&#x2019;s carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit. We completed the qualitative assessment during our third quarter of 2022 and concluded that it was more likely than not that the fair value of the goodwill was greater than the carrying value. As a result, no impairment of goodwill was recorded in fiscal 2022 (no impairments were recorded for fiscal 2021 or fiscal 2020).&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset 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 asset or asset groups is determined by discounting the expected related future cash flows.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Amortization of our intangible assets is generally recorded at the following rates:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:top;width:2.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:0pt;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;width:47.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:'Arial','Helvetica','sans-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.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_X5IRyacMyEe63uLdWdhnyg;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;two&lt;/span&gt;&lt;/span&gt; to twenty years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Existing technologies&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_H4Aki753xUGuQreNk3KAuw;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;four&lt;/span&gt;&lt;/span&gt; to twelve years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_R3HFVPmLxECS61adSjqHBQ;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt; to fifteen years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_eEcpTStYuEqXnki-TnMzpQ;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;two&lt;/span&gt;&lt;/span&gt; to twelve years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="0"
      id="Narr_x7doF_Nd5kKIJj7WzL3zSA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="0"
      id="Narr_1TikVotd20-zqNEyIVLggA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="0"
      id="Narr_OhKiLceLe0CytFk6plli9g"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">0</us-gaap:GoodwillImpairmentLoss>
    <dsgx:ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_Bt0WBS_STkemdAgSrYTNGQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:top;width:2.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:0pt;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;width:47.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:'Arial','Helvetica','sans-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.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_X5IRyacMyEe63uLdWdhnyg;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;two&lt;/span&gt;&lt;/span&gt; to twenty years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Existing technologies&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_H4Aki753xUGuQreNk3KAuw;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;four&lt;/span&gt;&lt;/span&gt; to twelve years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.95%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_R3HFVPmLxECS61adSjqHBQ;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt; to fifteen years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.95%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over &lt;span style="-sec-ix-hidden:Hidden_eEcpTStYuEqXnki-TnMzpQ;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;two&lt;/span&gt;&lt;/span&gt; to twelve years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</dsgx:ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_HTscRJdVmE-hEfxPxlNJTQ"
      id="Narr_JPQQvC54zUiUlbdqQbcoBA">P20Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_SEpa10LrA0WzfrbaPWE0pA"
      id="Narr_M3ZoKW_PP0qGA8qmd35DYg">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_2AF4Kk2u9UCFYGLlmpx5eQ"
      id="Narr_aW4v8ODil02JP2xkvki6sQ">P15Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_E5rEsetdQE2euDGYsh7YKg"
      id="Narr_ta3x1fZJG0W40OGChc3RcQ">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_5xBP54x7X02VOZCpQ_j7-w">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Property and equipment&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Property and equipment is recorded at cost.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Effective February&#160;1, 2020, we changed our accounting method for property&#160;&amp;amp; equipment from the declining balance method of depreciation to the straight-line method of depreciation to better reflect the consumption of the assets&#x2019; economic benefits. Our change in the method of depreciation is considered a change in accounting estimate effected by a change in accounting principle and has been applied prospectively. The change in the method of depreciation did not have a material impact on our results of operations.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Depreciation of our property and equipment is generally recorded at the following rates:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:top;width:2.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:0pt;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;width:47.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:'Arial','Helvetica','sans-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:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Computer equipment and software&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over 1 to 13 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over 3 to 14 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over lesser of useful life or term of lease&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Equipment installed with customers&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over 3 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <dsgx:DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_ZJbOtptfFUGsjvKr6cKsYQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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:80%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:top;width:2.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:0pt;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;width:47.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:'Arial','Helvetica','sans-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:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Computer equipment and software&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over 1 to 13 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over 3 to 14 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over lesser of useful life or term of lease&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Equipment installed with customers&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:2.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:47.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Straight-line over 3 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</dsgx:DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_qGgZ1KLOW0iJoBwYrLEc1w"
      id="Narr_YuN7ebvmYUivy8Jkq-Ohdw">P1Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_22SDPXLDbEGZubRlz13-ag"
      id="Narr_MIPprDRKhEiqDuPy82YyHQ">P13Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_wQ56Xji8okOHvhjyNs8GBg"
      id="Narr_faH4YFyB-02bDA-wZ7T1TA">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_EITjm6OxtkeOKUat7j70Wg"
      id="Narr_W4MsmgsfIUOg_7UnS676gg">P14Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_EquipmentMember_by-ctpJoUEKaLWdA6pBRzg"
      id="Narr_HeVoO17YcEeUnZpNMp7q3w">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:LesseeLeasesPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_V5gL6_qFF0-60lESTNKeNw">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Leases&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;At the inception of a contract we assess whether a contract is, or contains, a lease based on whether the contract conveys the right to control the use of an identified asset for a period of time in exchange for consideration. We have building lease agreements with lease and non-lease components, which are accounted for separately. For computer equipment and vehicle leases, we have elected to account for the lease and non-lease components as a single lease component.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We recognize a right-of-use (&#x201c;ROU&#x201d;) asset and a lease liability at the lease commencement date. The ROU asset is initially measured based on the initial amount of the lease liability adjusted for any lease payments made at or before the commencement date, plus any initial direct costs incurred and less any lease incentives received. The assets are depreciated to the earlier of the end of the useful life of the ROU asset or the lease term using the straight-line method as this most closely reflects the expected pattern of consumption of the future economic benefits. The lease term includes periods covered by an option to extend if the Company is reasonably certain to exercise that option.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The lease liability is initially measured at the present value of the future lease payments at the commencement date, discounted using the interest rate implicit in the lease or, if that rate cannot be readily determined, the Company&#x2019;s incremental borrowing rate. As most of our leases do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;The lease liability is measured at amortized cost using the effective interest method. It is remeasured when there is a change in future lease payments arising from a change in an index or rate, if there is a change in the Company&#x2019;s estimate of the amount expected to be payable under a residual value guarantee, or if the Company changes its assessment of whether it will exercise a purchase, extension or termination option. When the lease liability is remeasured, a corresponding &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;adjustment is made to the carrying amount of the ROU asset, or is recorded in profit or loss if the carrying amount of the ROU asset has been reduced to zero.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12&#160;months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.&lt;/p&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_FBgVlP6CKUKZ7LqRLEV4CQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Revenue recognition&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the SSP. SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. In addition to these general policies, the specific revenue recognition policies for each major category of revenue are included below.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;License&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Revenues for distinct licenses for on-premise or hosted software are derived from perpetual licenses granted to our customers for the right to use our software products. License revenues are billed on the effective date of a contract and revenue is recognized at the point in time when the customer is provided control of the respective software.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Services&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Services, which allow customers to access hosted software over a contract term without taking possession of the software, is provided on a subscription and/or transactional fee basis. Revenues from hosted software subscriptions and maintenance are typically billed annually in advance and revenue is recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Transaction fees are typically billed and recognized as revenue on a&#160;monthly basis based on the customer usage for that period.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Professional Services&#160;&amp;amp; Other&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Professional services are comprised of consulting, implementation and training services related to our services and products. These services are generally considered to be separate performance obligations as they provide incremental benefit to customers beyond providing access to the software. Professional services are typically billed on a time and materials basis and revenue is recognized over time as the services are performed. For professional services contracts billed on a fixed price basis, revenue is recognized over time based on the proportion of services performed. Revenue related to customer reimbursement of travel related expenses is recognized on a gross basis as incurred. Other revenues include hardware revenue and is generally billed, and revenue is recognized, when control of the product has transferred under the terms of an enforceable contract.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Significant assumptions and judgment are required to determine the SSP for each distinct performance obligation, which is needed to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. When estimating the SSP, we make certain significant assumptions including the basis for stratification of the &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. In order to determine the SSP of its promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Costs to obtain a contract with a customer&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between &lt;span style="-sec-ix-hidden:Hidden_HWyYO8ERp0Wr4ZxBm81I0w;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;four&lt;/span&gt;&lt;/span&gt; to six&#160;years, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one&#160;year or less.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Contract assets and liabilities&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s)&#160;and relates primarily to prepaid maintenance or other recurring services. Deferred revenues are relieved as revenue is recognized. Contract assets and deferred revenues are reported on a contract-by-contract basis at the end of each reporting period.&lt;/p&gt;</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_4hqUhne3rUqREbUiI2ekeQ"
      id="Narr_SuikmMAg90-wIKY0NgJl0Q">P6Y</dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals>
    <us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_2Sm8Whmoh0eECPLUddISDQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Research and development costs&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.&lt;/p&gt;</us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_AQV6NhBsmEOjvknakJBjwQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Stock-based compensation plans&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Stock Options&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We maintain stock option plans for non-employee directors, officers, employees and other service providers. Options to purchase our common shares are granted at an exercise price equal to the fair market value of our common shares as of the date of grant. This fair market value is determined using the closing price of our common shares on the TSX on the day immediately preceding the date of the grant.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Employee stock options generally vest over a five-year period starting from the grant date and expire seven&#160;years from the grant date. Non-employee directors&#x2019; and officers&#x2019; stock options generally have quarterly vesting over a &lt;span style="-sec-ix-hidden:Hidden_MlLWcOJvI0Cji82e8NzJRw;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt; to five-year period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;The fair value of employee stock option grants that are ultimately expected to vest are amortized to expense in our consolidated statement of operations based on the straight-line attribution method. The fair value of stock option grants is calculated using the Black-Scholes Merton option-pricing model. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on Government of Canada average bond yields for &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;a period consistent with the expected life of the option in effect at the time of the grant. The expected option life is based on the historical life of our granted options and other factors.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Performance&#160;&amp;amp; Restricted Share Units&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (&#x201c;PSUs&#x201d;) and restricted share units (&#x201c;RSUs&#x201d;).&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;PSUs vest at the end of a three-year performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&#x201c;TSR&#x201d;) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading&#160;days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire ten&#160;years from the grant date. New shares are issued from treasury upon the redemption of a PSU.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;PSUs are measured at fair value estimated using a Monte Carlo Simulation approach. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;RSUs vest annually over a three-year period starting from the grant date and expire ten&#160;years from the grant date. We issue new shares from treasury upon the redemption of an RSU.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Deferred Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Our board of directors adopted a deferred share unit plan effective as of June&#160;28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (&#x201c;DSUs&#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading&#160;days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none or a&#160;percentage of the eligible director&#x2019;s fees which would otherwise be payable in cash. If a director has invested less than the minimum amount of equity in Descartes, as prescribed from time to time by the board of directors, then the director must take at least 50% of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Cash-Settled Restricted Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Our board of directors adopted a cash-settled restricted share unit plan effective as of May&#160;23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&#x201c;CRSUs&#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading&#160;days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over &lt;span style="-sec-ix-hidden:Hidden_-ChMqGiq8EGz7VHoOSALbg;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;three&lt;/span&gt;&lt;/span&gt; to five-year periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30&#160;days following a vesting date and in any event prior to December&#160;31&lt;sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt; of the calendar&#160;year in which a vesting date occurs. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.&lt;/p&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_T35Ce-ftVkCfzd2IVx2x1w"
      id="Narr_kdbZkA1tJ0mjmGh6HXzm6Q">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_T35Ce-ftVkCfzd2IVx2x1w"
      id="Narr_sE2lKS7_zU-eHbaPnBWfCA">P7Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_srt_TitleOfIndividualAxis_dsgx_DirectorsAndOfficersMember_LzBPItrnkUSyLyvpW5dpwg"
      id="Narr_B4R7-QYjz0eTXc8YzpKOGQ">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      id="Narr_s1N6v5DQ5kybwSqTrKEZpA">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      id="Narr_4U8ZgHPJM02GKZNaa2rXyA">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      id="Narr_mBsKHd0nkU6kla4QE4SSWQ">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      id="Narr_5A-sAcWTXUe5Q_qHKqAU8Q">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <dsgx:BaseAnnualFeePercent
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_dsgx_DeferredShareUnitPlanMember_tqFBQc7Jn0OwDHsZ0d7dIw"
      decimals="2"
      id="Narr_CFmNO_QIZUa55Hheim81aA"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.50</dsgx:BaseAnnualFeePercent>
    <dsgx:CashSettledRestrictedShareUnitsVestingPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_AwardTypeAxis_dsgx_CashsettledRestrictedSharePlanMember_FU9bE0nj0UOkmWAWR5ux4Q"
      id="Narr_43VySfYkMkCZQ7LQ9VTNFg">P5Y</dsgx:CashSettledRestrictedShareUnitsVestingPeriod>
    <us-gaap:BusinessCombinationsPolicy
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_fXYCMqJcr0-2ZO6NeCyevg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Business combinations&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We apply the provisions of ASC Topic 805, &#x201c;Business Combinations&#x201d; (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one&#160;year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, &#x201c;Exit or Disposal Cost Obligations&#x201d; (Topic 420) and are accounted for separately from the business combination.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.&lt;/p&gt;</us-gaap:BusinessCombinationsPolicy>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_FglAsRA2Dk-LbBlDAe9ptw">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Income taxes&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We use the liability method of income tax allocation to account for income taxes. Deferred tax assets and liabilities arise from temporary differences between the tax bases of assets and liabilities and their reported amounts in the consolidated financial statements that will result in taxable or deductible amounts in future&#160;years. These temporary differences are measured using enacted tax rates. A valuation allowance is recorded to reduce deferred tax assets to the extent that we consider it is more likely than not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes.&#160;The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.&lt;/p&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_59IKd1LTI0uzjuWoDAW6SQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Earnings per share&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Basic earnings per share is calculated by dividing net income by the weighted average number of common shares outstanding during the period. Diluted earnings per common share is calculated by dividing net income by the sum of the weighted average number of common shares outstanding and all additional common shares that would have been &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;outstanding if potentially dilutive common shares had been issued during the period. The treasury stock method is used to compute the dilutive effect of stock-based compensation.&lt;/p&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_5RnHco53ekiVVBBYHrMtCw">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Recently adopted accounting pronouncements&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;In February&#160;2016, the FASB issued Accounting Standards Update 2016-02, &#x201c;Leases (Topic 842)&#x201d; (&#x201c;ASU 2016-02&#x201d;) and issued subsequent amendments to the initial guidance during 2018, collectively referred to as &#x201c;ASC 842&#x201d;. These updates supersede the lease guidance in ASC Topic 840, &#x201c;Leases&#x201d; and require the recognition of lease assets and lease liabilities by lessees for most leases previously classified as operating leases under ASC Topic 840. Leases will continue to be classified as either operating or finance. ASC 842 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2018, which was our fiscal&#160;year that began on February&#160;1, 2019 (fiscal 2020). The Company adopted ASC 842 as of February&#160;1, 2019 using the cumulative effect method.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;As permitted under ASC 842, we have elected to apply the practical expedient to carry forward our current assessments of whether a contract contains a lease, lease classification, remaining lease terms and amounts capitalized as initial direct costs. We have also elected to apply the practical expedient not to recognize right-of-use (ROU) assets and lease liabilities for short-term leases that have a lease term of 12&#160;months or less. The adoption of ASC 842 resulted in an increase to ROU assets and lease liabilities of $10.4 million as of February&#160;1, 2019. The adoption of ASC 842 did not have a material impact on either our consolidated statement of operations or our consolidated statement of cash flows.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;In June&#160;2016, the FASB issued Accounting Standards Update 2016-13, &#x201c;Financial Instruments&#160;&#x2013; Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments&#x201d; (&#x201c;ASU 2016-13&#x201d;) and issued subsequent amendments to the initial guidance during the 2019 calendar&#160;year, collectively referred to as &#x201c;ASC 326&#x201d;. ASC 326 requires the measurement and recognition of expected credit losses for financial assets held at amortized cost. ASC 326 replaces the existing incurred loss impairment model with an expected loss model which requires the use of forward-looking information to calculate credit loss estimates. ASC 326 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021).&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The Company is exposed to credit losses primarily through its trade accounts receivable and contract assets. The provision for credit losses is determined utilizing a model of historical losses data. In estimating the provision for credit losses, we considered the age of the receivable, our historical write-offs and the historical creditworthiness of the customer, among other factors. Should any of these factors change, the estimates made by us will also change accordingly, which could affect the level of our future provisions. The Company adopted ASC 326 as of February&#160;1, 2020 using the cumulative effect method and therefore the comparative information has not been restated. The adoption of ASC 326 did not have a material impact on our results of operations or disclosures.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;In January&#160;2017, the FASB issued Accounting Standards Update 2017-04, &#x201c;Intangibles&#160;&#x2013; Goodwill and Other (Topic 350): Simplifying the Test for Goodwill Impairment&#x201d; (&#x201c;ASU 2017-04&#x201d;). ASU 2017-04 simplifies how an entity is required to test goodwill for impairment. ASU 2017-04 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;In August&#160;2018, the FASB issued Accounting Standards Update 2018-15, &#x201c;Intangibles&#160;&#x2013; Goodwill and Other&#160;&#x2013; Internal-Use Software (Subtopic 350-40): Customer&#x2019;s Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract&#x201d; (&#x201c;ASU 2018-15&#x201d;). ASU 2018-15 aligns the requirements for capitalizing implementation costs incurred in a hosting arrangement that is a service contract with the requirements for capitalizing implementation costs incurred to develop or obtain internal-use software. ASU 2018-15 was effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2019, which was our fiscal&#160;year that began on February&#160;1, 2020 (fiscal 2021). The Company adopted this guidance in the first quarter of fiscal 2021. The adoption of this guidance did not have a material impact on our results of operations or disclosures.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;In December&#160;2019, the FASB issued Accounting Standards Update 2019-12, &#x201c;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes&#x201d; (&#x201c;ASU 2019-12&#x201d;). ASU 2019-12 simplifies how an entity accounts for income taxes. ASU 2019-12 is effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2020, &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;which is our fiscal&#160;year that began on February&#160;1, 2021 (fiscal 2022). The Company adopted this guidance in the first quarter of fiscal 2022. The adoption of this guidance did not have a material impact on our results of operations or disclosures.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Recently issued accounting pronouncements&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&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;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:OperatingLeaseLiability
      contextRef="As_Of_2_1_2019_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_us-gaap_AccountingStandardsUpdate201602Member_Uxq09-K35EWseTk8RpKELw"
      decimals="-5"
      id="Narr_YiAccjw3-06o1g0tJTIfsw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10400000</us-gaap:OperatingLeaseLiability>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_Q6MHINbAf0W7DwOFZEylwg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;3&#160;&#x2013; Acquisitions&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Fiscal 2022 Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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 $35.9 million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $0.6 million with a fair value of $0.5 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $0.1 million. The purchase price was finalized in the three&#160;month period ended January&#160;31, 2022 with no adjustments.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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 $25.2 million (EUR 20.7 million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $0.7 million with a fair value of $0.7 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 May&#160;7, 2022.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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 $29.2 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to $10.0 million in cash is payable if certain revenue performance targets are met by GreenMile in the two&#160;years following the acquisition. The fair value of the contingent consideration was valued at $3.3 million at the acquisition date. The gross contractual amount of trade receivables acquired was $1.1 million with a fair value of $1.0 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $0.1 million. 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 July&#160;8, 2022.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;For the businesses acquired during fiscal 2022, we incurred acquisition-related costs of $0.9 million for the&#160;year ended January&#160;31, 2022, respectively. The acquisition-related costs were primarily for advisory services and are included in other charges in our consolidated statements of operations. For the&#160;year ended January&#160;31, 2022, we have recognized aggregate revenues of $12.0 million, respectively, and a net loss of $1.3 million from QuestaWeb, Portrix and GreenMile since the date of acquisition in our consolidated statements of operations.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:9pt;text-align:justify;margin:0pt;"&gt;The final purchase price allocation for QuestaWeb and the preliminary purchase price allocations for Portrix and GreenMile, which have not been finalized, are as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-size:9pt;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:56.71%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:7.11%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:7.13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;QuestaWeb&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Portrix&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Green&#160;Mile&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Purchase price consideration:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Cash, less cash acquired related to QuestaWeb ($2,097), Portrix ($200) and GreenMile ($1,552)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 35,860&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 25,188&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 29,230&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 90,278&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Contingent consideration&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,339&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,339&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Net working capital adjustments payable / (receivable)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 17&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (54)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (308)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (345)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 35,877&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 25,134&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 32,261&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 93,272&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Allocated to:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current assets, excluding cash acquired&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 714&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 810&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,186&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,710&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Property and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 78&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 89&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 167&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Right-of-use assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 123&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 374&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 497&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Other long-term assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 242&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 242&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (170)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (871)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,498)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,539)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (736)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (499)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (909)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,144)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (123)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (374)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (497)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Deferred income tax liability&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,185)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (752)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,937)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Long-term income taxes payable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (365)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (365)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,062)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,062)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net tangible assets (liabilities) assumed&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (114)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (6,807)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,007)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (7,928)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Finite life intangible assets acquired:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,800&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,014&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 5,700&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 14,514&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 8,900&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,286&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 14,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 35,186&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 100&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 122&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 100&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 322&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 500&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 487&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 500&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,487&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Goodwill&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 21,691&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 15,032&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,968&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 49,691&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 35,877&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 25,134&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 32,261&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 93,272&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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 represent 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 allocations, 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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The acquired intangible assets are being amortized over their estimated useful lives as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.11%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:64.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;QuestaWeb&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Portrix&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;GreenMile&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;13 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;13 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;13 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The goodwill on the QuestaWeb, Portrix and GreenMile acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the QuestaWeb and GreenMile acquisition is deductible for tax purposes. The goodwill arising from the Portrix acquisition is not deductible for tax purposes.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Fiscal 2021 Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;On February&#160;21, 2020, Descartes acquired all of the shares of Peoplevox Limited (&#x201c;Peoplevox&#x201d;), a UK-based provider of cloud-based ecommerce warehouse management solutions. The purchase price for the acquisition was approximately $24.1 million, net of cash acquired, which was funded from a combination of cash on hand and drawing on Descartes&#x2019; &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;existing credit facility. The gross contractual amount of trade receivables acquired was $0.4 million with a fair value of $0.4 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 January&#160;31, 2021 with no adjustments.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;On June&#160;10, 2020 Descartes acquired all of the shares of Cracking Logistics Limited (&#x201c;Kontainers&#x201d;), a UK-based provider of client-facing digital freight execution platforms. The purchase price for the acquisition was approximately $5.2 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to $6.0 million in cash is payable if certain revenue performance targets are met by Kontainers in the two&#160;years following the acquisition. The fair value of the contingent consideration was valued at $1.4 million at the acquisition date. The gross contractual amount of trade receivables acquired was $0.2 million with a fair value of $0.2 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 July&#160;31, 2021 with no adjustments.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;On November&#160;6, 2020, Descartes acquired all of the shares of ShipTrack&#160;Inc. (&#x201c;ShipTrack&#x201d;), a provider of cloud-based mobile resource management and shipment tracking solutions. The purchase price for the acquisition was approximately $19.0 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to CAD 25.0 million in cash is payable if certain revenue performance targets are met by ShipTrack in the two&#160;years following the acquisition. The fair value of the contingent consideration was valued at $2.8 million at the acquisition date. The gross contractual amount of trade receivables acquired was $1.7 million with a fair value of $1.7 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 October&#160;31, 2021 with no adjustments.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The final purchase price allocations for businesses we acquired during 2021 are as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:55.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.23%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Peoplevox&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Kontainers&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;ShipTrack&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Purchase price consideration:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Cash, less cash acquired related to Peoplevox ($1,634), Kontainers (overdraft of $13) and ShipTrack ($529)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 24,137&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 5,237&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 19,029&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 48,403&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Consideration payable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 100&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 100&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Contingent consideration&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,414&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,825&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,239&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Net working capital adjustments (receivable) / payable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (42)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (87)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 64&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (65)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 24,095&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 6,664&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 21,918&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 52,677&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Allocated to:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current assets, excluding cash acquired&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 485&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 469&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,853&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,807&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Right-of-use assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 151&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 151&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (776)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,074)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (693)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,543)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (748)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (102)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (204)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,054)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (151)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (151)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Deferred income tax liability&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,615)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (4,012)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,627)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (728)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (728)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net tangible assets (liabilities) assumed&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,654)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (707)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (3,784)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (7,145)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Finite life intangible assets acquired:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,631&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 800&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,905&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 8,336&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 7,651&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 11,102&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 21,753&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 30&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 77&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 107&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 285&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 80&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 291&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 656&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Goodwill&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 15,182&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,461&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 10,327&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 28,970&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 24,095&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 6,664&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 21,918&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 52,677&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The acquired intangible assets are being amortized over their estimated useful lives as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.23%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Peoplevox&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Kontainers&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;ShipTrack&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;10 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;12 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;13 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;N/A&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The goodwill on the Peoplevox, Kontainers and ShipTrack acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the Peoplevox, Kontainers and ShipTrack acquisitions are not deductible for tax purposes.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Fiscal 2020 Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;On February&#160;12, 2019, Descartes acquired substantially all of the assets of the businesses run by the Management Systems Resources&#160;Inc. group of companies (collectively, &#x201c;Visual Compliance&#x201d;), 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. The purchase price for the acquisition was approximately $248.9 million, net of cash acquired, which was funded from a combination of drawing on Descartes&#x2019; existing credit facility and issuing to the sellers 0.3 million Descartes common shares from treasury. The gross contractual amount of trade receivables acquired was $6.4 million with a fair value of $5.2 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $1.2 million. The purchase price was finalized in the three&#160;month period ended January&#160;31, 2020 with no adjustments.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;On May&#160;10, 2019, Descartes acquired all the shares of Core Transport Technologies NZ Limited (&#x201c;CORE&#x201d;), an electronic transportation network that provides global air carriers and ground handlers with shipment scanning and tracking solutions. The purchase price for the acquisition was approximately $21.8 million, net of cash acquired, which was funded from drawing on Descartes&#x2019; existing credit facility. Additional contingent consideration of up to $9.0 million in cash is payable if &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;certain revenue performance targets are met by CORE in the two&#160;years following the acquisition. The fair value of the contingent consideration was valued at $1.5 million at the acquisition date. The gross contractual amount of trade receivables acquired was $0.4 million with a fair value of $0.4 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, 2020 with no adjustments.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;On June&#160;27, 2019, Descartes acquired all the shares of Tegmento AG and Contentis AG (collectively, &#x201c;STEPcom&#x201d;), a business-to-business supply chain integration network based in Switzerland. The purchase price for the acquisition was approximately $18.6 million, net of cash acquired, which was funded from drawing on Descartes&#x2019; existing credit facility. The gross contractual amount of trade receivables acquired was $0.9 million with a fair value of $0.8 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $0.1 million. The purchase price was finalized in the three&#160;month period ended July&#160;31, 2020 with no adjustments.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;On August&#160;20, 2019, Descartes acquired BestTransport.com,&#160;Inc. (&#x201c;BestTransport&#x201d;), a cloud-based transportation management system provider focused on flatbed-intensive manufacturers and distributors. The purchase price for the acquisition was approximately $11.7 million, net of cash acquired, which was funded from drawing on Descartes&#x2019; existing credit facility. The gross contractual amount of trade receivables acquired was $0.6 million with a fair value of $0.6 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 July&#160;31, 2020 with no adjustments.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The final purchase price allocations for businesses we acquired during 2020 are as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;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:48.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:6.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:6.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.2%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Visual&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;STEP-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Best-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Compliance&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;CORE&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;com&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Transport&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Purchase price consideration:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Cash, less cash acquired related to Visual Compliance ($170), CORE ($213), STEPcom ($2,700) and BestTransport ($507)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 239,863&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 21,833&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18,639&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11,718&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 292,053&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Common shares issued&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,045&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,045&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Contingent consideration&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,450&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,450&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Net working capital adjustments payable / (receivable)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,147&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 62&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 250&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,459&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 250,055&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 23,345&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18,889&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11,718&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 304,007&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Allocated to:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Current assets, excluding cash acquired&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,403&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 689&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,470&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 815&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,377&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Property and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,048&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 257&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,370&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Deferred income tax asset&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30,924&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30,924&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Right-of-use assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,188&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 68&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 232&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 194&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,682&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (840)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (352)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (874)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (284)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (2,350)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (10,267)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (278)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (813)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (9)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (11,367)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,188)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (68)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (232)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (194)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,682)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Deferred income tax liability&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (282)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (3,332)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (2,316)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,352)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (7,282)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Net tangible assets (liabilities) assumed&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 25,968&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,225)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (2,276)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (795)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 21,672&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Finite life intangible assets acquired:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 32,186&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,600&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,839&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 50,625&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 69,422&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,800&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,800&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 80,022&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 528&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 200&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 102&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 50&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 880&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,166&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 300&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 205&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 150&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,821&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Goodwill&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 118,785&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 12,670&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,019&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,513&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 146,987&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 250,055&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 23,345&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18,889&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11,718&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 304,007&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The acquired intangible assets are being amortized over their estimated useful lives as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:51.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Visual&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Best&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Compliance&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;CORE&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;STEPcom&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Transport&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;14 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;13 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;9 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;12 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;7 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;N/A&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;8 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The goodwill on the Visual Compliance, CORE, STEPcom and BestTransport acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the CORE, STEPcom and BestTransport acquisitions is not deductible for tax purposes. The goodwill from the Visual Compliance acquisition is deductible for tax purposes.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired GreenMile, Portrix, QuestaWeb, ShipTrack, Kontainers, Peoplevox, BestTransport, STEPcom, CORE and Visual Compliance as of February&#160;1, 2019.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&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 GreenMile, Portrix, QuestaWeb, ShipTrack, &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Kontainers, Peoplevox, BestTransport, STEPcom, CORE and Visual Compliance occurred at February&#160;1, 2019, or to project our results of operations for any future period.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13.03%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13.03%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 429,531&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 369,271&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 354,484&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net income&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 85,549&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 48,788&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 30,933&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Earnings per share&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1.01&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 0.58&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 0.38&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 0.99&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 0.57&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 0.37&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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_26_2021_To_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_-NIvLjm4HEmB4367X3GH_A"
      decimals="-5"
      id="Narr_1EaAeVn4gkqMJpcY5xgE_Q"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">35900000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_UeQxy_Xq3EWY5r4R8mN2Bg"
      decimals="-5"
      id="Narr_KxCXFylJAkSDFNRZQ9qEUQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">600000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_UeQxy_Xq3EWY5r4R8mN2Bg"
      decimals="-5"
      id="Narr_2MYNpDnYMEWAXNG_eAs5LQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">500000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible
      contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_UeQxy_Xq3EWY5r4R8mN2Bg"
      decimals="-5"
      id="Narr_7YAU5FZb3Ui_jrcSU_R7Zg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">100000</us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_fE0y39-Y1kOHLDmNwnB4zA"
      decimals="-5"
      id="Narr_0vtxcfeW-02hiGwRrwZ33Q"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">25200000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_fE0y39-Y1kOHLDmNwnB4zA"
      decimals="-5"
      id="Narr_Mhp3gjhHSUGIUwpKeRauTg"
      unitRef="Unit_Standard_EUR__n7KenNwikaxusqIFuXIvQ">20700000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_k2f6AxEZnU-5tuFi5l7-yA"
      decimals="-5"
      id="Narr_nP_X4NuUtEWnRBOQxGvQJQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">700000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_k2f6AxEZnU-5tuFi5l7-yA"
      decimals="-5"
      id="Narr_9NhO8OMcg0CZonQIJBlchg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">700000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Acpz1De2gUW7H4nJYzi56A"
      decimals="-5"
      id="Narr_LiYEglcTOE6bKyRNMHqRJw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">29200000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA"
      decimals="-5"
      id="Narr_Ct7rGoUyB0WyDwxfwpVkOg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Acpz1De2gUW7H4nJYzi56A"
      id="Narr_vT-8euv25Ui84g5q4W3DxQ">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA"
      decimals="-5"
      id="Narr_9VsJN-wazUe0CCJYxQwYxA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3300000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA"
      decimals="-5"
      id="Narr_lz1l7G0lokyNrjnBRIdTUQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1100000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA"
      decimals="-5"
      id="Narr_H_h_5GDb8EiPgN9RlSC4CQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1000000.0</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible
      contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_ACCbOOfBJkepcrARqS0eaA"
      decimals="-5"
      id="Narr_Q6slGOtPJkm-eK9nBWFIPw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">100000</us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Acquisitions2022Member_iwvQAXkNEUC4-KVO_3DvMQ"
      decimals="-5"
      id="Narr__jnlPsA4kEq7Tg3DeK69WA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">900000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Acquisitions2022Member_iwvQAXkNEUC4-KVO_3DvMQ"
      decimals="-5"
      id="Narr_1QLzVmwS9E2kUtxs1dnTmQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12000000.0</us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual>
    <us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Acquisitions2022Member_iwvQAXkNEUC4-KVO_3DvMQ"
      decimals="-5"
      id="Narr_360H8cGMJ02tmC3GB5oZ_Q"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1300000</us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Group_3P00127brEOEmsYnGyEEtg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-size:9pt;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:56.71%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:7.11%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:7.13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;QuestaWeb&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Portrix&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Green&#160;Mile&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Purchase price consideration:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Cash, less cash acquired related to QuestaWeb ($2,097), Portrix ($200) and GreenMile ($1,552)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 35,860&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 25,188&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 29,230&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 90,278&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Contingent consideration&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,339&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,339&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Net working capital adjustments payable / (receivable)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 17&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (54)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (308)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (345)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 35,877&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 25,134&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 32,261&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 93,272&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Allocated to:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current assets, excluding cash acquired&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 714&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 810&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,186&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,710&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Property and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 78&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 89&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 167&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Right-of-use assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 123&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 374&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 497&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Other long-term assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 242&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 242&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (170)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (871)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,498)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,539)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (736)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (499)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (909)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,144)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (123)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (374)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (497)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Deferred income tax liability&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,185)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (752)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,937)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Long-term income taxes payable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (365)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (365)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,062)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,062)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net tangible assets (liabilities) assumed&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (114)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (6,807)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,007)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (7,928)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Finite life intangible assets acquired:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,800&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,014&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 5,700&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 14,514&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 8,900&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,286&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 14,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 35,186&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 100&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 122&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 100&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 322&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 500&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 487&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 500&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,487&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Goodwill&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 21,691&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 15,032&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,968&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 49,691&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:56.71%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 35,877&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 25,134&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 32,261&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 93,272&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:55.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.23%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Peoplevox&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Kontainers&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;ShipTrack&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Purchase price consideration:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Cash, less cash acquired related to Peoplevox ($1,634), Kontainers (overdraft of $13) and ShipTrack ($529)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 24,137&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 5,237&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 19,029&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 48,403&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Consideration payable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 100&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 100&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Contingent consideration&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,414&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,825&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,239&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Net working capital adjustments (receivable) / payable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (42)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (87)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 64&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (65)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 24,095&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 6,664&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 21,918&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 52,677&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Allocated to:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current assets, excluding cash acquired&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 485&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 469&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,853&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,807&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Right-of-use assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 151&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 151&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (776)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,074)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (693)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,543)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (748)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (102)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (204)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,054)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (151)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (151)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Deferred income tax liability&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,615)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (4,012)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,627)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (728)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (728)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net tangible assets (liabilities) assumed&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,654)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (707)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (3,784)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (7,145)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Finite life intangible assets acquired:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,631&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 800&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,905&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 8,336&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 7,651&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 11,102&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 21,753&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 30&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 77&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 107&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 285&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 80&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 291&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 656&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Goodwill&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 15,182&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,461&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 10,327&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 28,970&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 24,095&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 6,664&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 21,918&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 52,677&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;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:48.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:6.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:6.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.2%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Visual&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;STEP-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Best-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Compliance&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;CORE&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;com&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Transport&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Purchase price consideration:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Cash, less cash acquired related to Visual Compliance ($170), CORE ($213), STEPcom ($2,700) and BestTransport ($507)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 239,863&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 21,833&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18,639&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11,718&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 292,053&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Common shares issued&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,045&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,045&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Contingent consideration&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,450&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,450&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Net working capital adjustments payable / (receivable)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,147&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 62&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 250&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,459&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 250,055&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 23,345&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18,889&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11,718&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 304,007&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Allocated to:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Current assets, excluding cash acquired&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,403&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 689&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,470&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 815&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,377&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Property and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,048&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 257&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 35&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,370&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Deferred income tax asset&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30,924&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30,924&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Right-of-use assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,188&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 68&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 232&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 194&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,682&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (840)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (352)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (874)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (284)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (2,350)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (10,267)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (278)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (813)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (9)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (11,367)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,188)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (68)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (232)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (194)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,682)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Deferred income tax liability&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (282)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (3,332)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (2,316)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,352)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (7,282)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Net tangible assets (liabilities) assumed&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 25,968&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,225)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (2,276)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (795)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 21,672&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Finite life intangible assets acquired:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 32,186&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,600&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,839&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,000&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 50,625&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 69,422&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,800&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,800&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 80,022&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 528&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 200&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 102&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 50&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 880&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,166&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 300&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 205&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 150&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,821&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Goodwill&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 118,785&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 12,670&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,019&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,513&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 146,987&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:48.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 250,055&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 23,345&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18,889&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11,718&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.76%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 304,007&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ"
      decimals="-3"
      id="Narr_loT4uLlqmkKYvb2YIYs87w"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2097000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg"
      decimals="-3"
      id="Narr_XxJd34y97EiS9vW9GLYHgA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">200000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw"
      decimals="-3"
      id="Narr_oBxQwIVI10Of7OlTjPeAbA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1552000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ"
      decimals="-3"
      id="Tc_A7pGMem0k0OZaPg1OZfOvw_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">35860000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg"
      decimals="-3"
      id="Tc_1AYpAqx4Bkeyq2Gt88RzyQ_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">25188000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw"
      decimals="-3"
      id="Tc_f0igNrrjCkaQJL2NIwtH6Q_3_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">29230000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q"
      decimals="-3"
      id="Tc_L2c9RnEMcUuXwYLlnYsVdg_3_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">90278000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw"
      decimals="-3"
      id="Tc_paqP0rs1kE2hzcHUmFBsKQ_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3339000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q"
      decimals="-3"
      id="Tc_nykD4Bax4k2-Ad8106Hecg_4_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3339000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ"
      decimals="-3"
      id="Tc_P95FM9187EG1CAz5DDlNOA_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">17000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg"
      decimals="-3"
      id="Tc_E7LIn3gWeUipHMmPz8qh0A_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-54000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw"
      decimals="-3"
      id="Tc_Ry0QvQh2RUezWm984Z4v3A_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-308000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q"
      decimals="-3"
      id="Tc_smGwCxn9-E2T-3q896Hbzg_5_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-345000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ"
      decimals="-3"
      id="Tc_KJL0vxFaAkiRq1j1BQlYng_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">35877000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg"
      decimals="-3"
      id="Tc_NFloWM1rbkmA8wgu-DEzdQ_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">25134000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw"
      decimals="-3"
      id="Tc_Cxpdw77TOUWHqbLRe-EW5g_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">32261000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q"
      decimals="-3"
      id="Tc_VoJ55qBThEyr7yVv4QlUyg_6_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">93272000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw"
      decimals="-3"
      id="Tc_pUkxlCZQDUGm6WlvWALU4Q_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">714000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA"
      decimals="-3"
      id="Tc_FbMP3l5JWUmMVVeEW9ndKw_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">810000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog"
      decimals="-3"
      id="Tc_2_dFoZ7zrEq_0Ww_fCex_Q_8_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2186000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_9lSHXCxuaE-Tx_lR3avIfQ_8_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3710000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw"
      decimals="-3"
      id="Tc_VviXsE4VNESMdkeD6iY9Ew_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">78000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog"
      decimals="-3"
      id="Tc_kXdmJmVEX062woMlAAhL9A_9_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">89000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_Y4Ef6Yg3qkqJ7IY8Wkh2_g_9_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">167000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw"
      decimals="-3"
      id="Tc_oMVObqKCj06h3AIVDhGDBg_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">123000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA"
      decimals="-3"
      id="Tc_4Nwqj3aK_0aOw0eYrQrgQw_10_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">374000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_hnaw19xC_kuRvMnjx9LG2g_10_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">497000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog"
      decimals="-3"
      id="Tc_cs_avwhopky9L6srb0GX5Q_11_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">242000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_hbWMx76nN0aGkoIS7YEJbQ_11_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">242000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw"
      decimals="-3"
      id="Tc_VViANJmOOEe1_Ldrj8dlHg_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">170000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA"
      decimals="-3"
      id="Tc_EktbI4rL0kOx8Us_35tzNw_12_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">871000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog"
      decimals="-3"
      id="Tc_K6RKmwJQ3EmbiagbKu6WUQ_12_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1498000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_OLh5eX_5p0y9bPhn-xzK7Q_12_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2539000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw"
      decimals="-3"
      id="Tc_fuTJkFymrUOirk3SSetntw_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">736000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA"
      decimals="-3"
      id="Tc_wyifSHN39ECSb2JYyFz81Q_13_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">499000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog"
      decimals="-3"
      id="Tc_QQ0y6jmo3U60QxhyDsMyIQ_13_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">909000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_3WeAFH89UEmNkxQBwUm82w_13_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2144000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw"
      decimals="-3"
      id="Tc_QLyD4A7KjUWLkA3cXAOA3Q_14_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-123000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA"
      decimals="-3"
      id="Tc_5UtKOGXXy0SWd93xGtLHFQ_14_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-374000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_PFNpY33BaE6bEhEloqF9Tw_14_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-497000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA"
      decimals="-3"
      id="Tc_QubMih7BHEi-DQ6OVbM_7A_15_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5185000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog"
      decimals="-3"
      id="Tc_RCzHguEOVU2LvmvlwDK17g_15_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">752000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_8ar2b97Xr0CdzIFZfrftow_15_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5937000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog"
      decimals="-3"
      id="Tc_Qd3tT79PMUGLvzHMSa9Jnw_16_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">365000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_xh_VOJbdiECodmqkYMG3og_16_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">365000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA"
      decimals="-3"
      id="Tc_-n1yiNXlVk6RhKs6CHxK8Q_17_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1062000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_FXt4fyvLy0OSVbam-ZzgoQ_17_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1062000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw"
      decimals="-3"
      id="Tc_WfZR6e7sIUqoRFrKo73K4w_18_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">114000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA"
      decimals="-3"
      id="Tc_ILqwioHcK0mvCmMZFAxMGA_18_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6807000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog"
      decimals="-3"
      id="Tc_d5pRi_vZZ0quP-UKwE95QA_18_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1007000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_uTRErM0SPEC00UE5FNYmEA_18_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7928000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_9HVnyG-GgkS3TAR7yaffRQ"
      decimals="-3"
      id="Tc_D42bReVxCEGj_wegzHuO7A_21_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_yaSyCWUyfEmXCz3tNLVbRg"
      decimals="-3"
      id="Tc_Yoc4a0Q2ZUuh8TNDpwoy9g_21_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4014000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_txYuo3m0uUqxVIbsRXXUdg"
      decimals="-3"
      id="Tc_kXAH6XJJOUK6X-7xfGbNwg_21_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_8HUH7Y_IdkC1mJohr3nlZQ"
      decimals="-3"
      id="Tc_OFw_BCVnIUeQ52Eipi3wPw_21_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14514000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_uC3qtrAlckiNFx9y3xMYcQ"
      decimals="-3"
      id="Tc_uU9TLeqV7kGq7ch-YIKRmA_22_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8900000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_EN8sgTg8z0O8q8r2t3z_Fg"
      decimals="-3"
      id="Tc_rsR_W8lbd0eMcOgOKpGnVg_22_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12286000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IDk6N0SKMU6pWQST9laSxQ"
      decimals="-3"
      id="Tc_kr6P2zkG2Uy_C-oW55335w_22_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_8Ah7qZo0N0q9fJLHWe_fAQ"
      decimals="-3"
      id="Tc_eHNXGdppWUuvNEC0gleb_w_22_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">35186000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember__4iI8QiVVkCWTDOwVp8BPQ"
      decimals="-3"
      id="Tc_-ypTDPaqcUmEivCZH8yqcg_23_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_e_qmpySADECwk7mYyKxEiw"
      decimals="-3"
      id="Tc_tP7QA2sqmk2hPP-Ny-b_ZQ_23_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">122000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_OAOOdrPxlEGBgjExzkPMpQ"
      decimals="-3"
      id="Tc_rCaxDFuWuUONhqgCuZXKMw_23_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_NlJ5oxTQ6UWVrL3DGtx8Dw"
      decimals="-3"
      id="Tc_lVS8jzqWXkyUxnGAveXrIg_23_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">322000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Zg8RmQtgDUy46PpX-zr9xA"
      decimals="-3"
      id="Tc_BrDir2E_uEqKPtqAtBIIqQ_24_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">500000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_1IENC0jwXESl2IShVnfpRg"
      decimals="-3"
      id="Tc_K6P8wdqIkkGnBOnkZh7c-w_24_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">487000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_eqDX7VyTkUyhFUQH9sWjXg"
      decimals="-3"
      id="Tc_DN4mKcYg7EOdUnttKdzQzg_24_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">500000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_m2aVx6RaU0yxG_4hM-YwGg"
      decimals="-3"
      id="Tc_nrBQDbLY6UK5zsxN3qfyFQ_24_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1487000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_NX7wUUsIkUyuSpE3kAB-uw"
      decimals="-3"
      id="Tc_zPRLCM0scEWOf7yoa3oFww_25_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">21691000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_OBp_beEfZk6wvrJkVgs8EA"
      decimals="-3"
      id="Tc_qAduGHJgeEq3XrzylIgN4A_25_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">15032000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_7sQNZey2lUKZFIRH86hKog"
      decimals="-3"
      id="Tc_hwzmuW9BdUmRFJtMuRWjDw_25_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12968000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_pLF_hMNRUUyJLit7KabNNQ"
      decimals="-3"
      id="Tc_EKANTLSaV02uwjfwIsWyOg_25_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">49691000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ"
      decimals="-3"
      id="Tc_oTj-os_3X0qhgBmR5Cc7lg_26_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">35877000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg"
      decimals="-3"
      id="Tc_UgEQC5PF6kKDQ8gQHQJ3vQ_26_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">25134000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw"
      decimals="-3"
      id="Tc_n_P7TeL_kk-mYBYi7Vvx5w_26_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">32261000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_The2022AcquisitionsMember_B-p41iGEeU2Ymbm08J7v_Q"
      decimals="-3"
      id="Tc_hagS0BXM00qceMe3n-1XaQ_26_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">93272000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Group_oxJdUSth4kW4N4pj-QHVWQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.11%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:64.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;QuestaWeb&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Portrix&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;GreenMile&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;13 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;13 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;13 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.23%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Peoplevox&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Kontainers&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;ShipTrack&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;10 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;12 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;13 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;N/A&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.23%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.72%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:51.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Visual&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Best&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Compliance&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;CORE&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;STEPcom&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Transport&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;14 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;13 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;9 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;12 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;7 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;N/A&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;6 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.72%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;8 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;5 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;3 years&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2 years&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_qEq7TAJGbUWDi902EO3iWg"
      id="Tc_HKQe6eufWEmZ8rcy7ka2VQ_2_2">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_dLXciUyUp0ujzW8J9gIbPA"
      id="Tc_T5mq7W4jcke-NnTc59hBBw_2_4">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_0_mws9CjSEi9zaG9wGYPrQ"
      id="Tc_eqCAGD_QZUee54tMRY2FBw_2_6">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_9Y5S6N_X0EG0HQZeg2rKEQ"
      id="Tc_iE5wc4tKG0i2YF5uv-o_OQ_3_2">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_p9nNK7-Cb02XX7YZ31EYHA"
      id="Tc_21RQh69aTU-nKLnB6jfVFw_3_4">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_LCFf39TyXEuWIUpt3uXoVg"
      id="Tc_6r-mp5txp0S1-dqIZEw83w_3_6">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_EWfnmDasXUiG5glp47JklA"
      id="Tc_Nh3pnvKwHEaNWadXqYhmRg_4_2">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WcEylzAH80Wci6W4cTylsg"
      id="Tc__4ZMh9zX8U26QKupmSp8Ig_4_4">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_0fxE6yk620mFkQIAhrUiMA"
      id="Tc_U3Yy9s_HmUaN8GBKhOjRuQ_4_6">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_0znV3ErqU0W7ltG5tNNzlw"
      id="Tc_p40EaM38E02sRO6VaYOAqg_5_2">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_IwiX329ID0OWzMgPqLvdHA"
      id="Tc_HvqM2FDER0-fJEU0nA3j5w_5_4">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_iAWnsyaLHkGX5rClQmLyGw"
      id="Tc_tH5vLabGiEWLISqTNTcEjg_5_6">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_21_2020_To_2_21_2020_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_cpr7JowY-0-fTELVxWuXZg"
      decimals="-5"
      id="Narr_cmjbjEXZ3EKP7vmTBQNtzg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">24100000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_2_21_2020_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_g1PCOnoy6EW5BDn__nPeaw"
      decimals="-5"
      id="Narr_vWQ-Yg4H6kuQJXHZ8LcOsQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">400000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_2_21_2020_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_g1PCOnoy6EW5BDn__nPeaw"
      decimals="-5"
      id="Narr_cEK4vWxSXkS3sCCCqqDY-w"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">400000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_6_10_2020_To_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_9r0d5j0vHkOZ65LLgwaf8Q"
      decimals="-5"
      id="Narr_34Qd52Uw7Uiown1dOWPTLA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5200000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_K2fv58fH3kidZbNiWe-ZLA"
      decimals="-5"
      id="Narr_wNyzAbDfFkiWHULhYfkFPQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_6_10_2020_To_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_9r0d5j0vHkOZ65LLgwaf8Q"
      id="Narr_H0kR9iKcWkeWqbLiUuMVEw">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_K2fv58fH3kidZbNiWe-ZLA"
      decimals="-5"
      id="Narr_T9_EHJOVW0qG8eaNaGLy-w"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1400000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_K2fv58fH3kidZbNiWe-ZLA"
      decimals="-5"
      id="Narr_hmvC_8vpF06_lEd7KnWc0A"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">200000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_6_10_2020_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_K2fv58fH3kidZbNiWe-ZLA"
      decimals="-5"
      id="Narr_tyxUxv7dDUO_sV3NWbFkdA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">200000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_11_6_2020_To_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_Lq0x8Dst1Ua4ndrbhaCCBA"
      decimals="-5"
      id="Narr_SZWSG6IPvUCVkuc0z1os_Q"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">19000000.0</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_CZlLc3PkPEGHTiG_tcT0tQ"
      decimals="-5"
      id="Narr_0-8SG22ABUaSGS_lOIK24Q"
      unitRef="Unit_Standard_CAD_U4lm8KFyrE2-58IWVu9ONA">25000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_11_6_2020_To_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_Lq0x8Dst1Ua4ndrbhaCCBA"
      id="Narr_jsLidkfBRUy2qA0NeJuo3Q">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_CZlLc3PkPEGHTiG_tcT0tQ"
      decimals="-5"
      id="Narr_AO2_2yUp_kO2hXeX45u3Rg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2800000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_CZlLc3PkPEGHTiG_tcT0tQ"
      decimals="-5"
      id="Narr_VzfmOiRdokCrDEtK_BvOkg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1700000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_11_6_2020_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_CZlLc3PkPEGHTiG_tcT0tQ"
      decimals="-5"
      id="Narr_SZUTIc160kKgXrxc6qqxGQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1700000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw"
      decimals="-3"
      id="Narr_d4VDZ5FAlkOVqXnaPM8TZw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1634000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ"
      decimals="-3"
      id="Narr_YihaxElVnU290btT0ouIow"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">13000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg"
      decimals="-3"
      id="Narr_yFAQ53HphkunQNMNri1NQA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">529000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw"
      decimals="-3"
      id="Tc_1JOLpgGfEUCbODYfQ_k2-Q_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">24137000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ"
      decimals="-3"
      id="Tc_m8uaca1dXEK_ad-GVTpXzQ_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5237000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg"
      decimals="-3"
      id="Tc_Y8iTlHwoxUqMtYosXe1F_Q_3_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">19029000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug"
      decimals="-3"
      id="Tc_wl3tCrNTuUC0zouoHZaXcA_3_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">48403000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <dsgx:BusinessCombinationConsiderationTransferredPayable
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ"
      decimals="-3"
      id="Tc_aEeco-QQo0mVyRMXKDnHQA_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">100000</dsgx:BusinessCombinationConsiderationTransferredPayable>
    <dsgx:BusinessCombinationConsiderationTransferredPayable
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug"
      decimals="-3"
      id="Tc_y6Y3n5bJiEWUF0TGHmQGYw_4_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">100000</dsgx:BusinessCombinationConsiderationTransferredPayable>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ"
      decimals="-3"
      id="Tc_-JRUf7Ytgkm2dIi-3Yt_gQ_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1414000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg"
      decimals="-3"
      id="Tc_C-PCZixfw0e5rkBkDCMKOA_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2825000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug"
      decimals="-3"
      id="Tc_G83Jwf57jEeOyMr1ldFuAQ_5_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4239000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw"
      decimals="-3"
      id="Tc_XIJLKxKeU0Woctlgzwv-Rg_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-42000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ"
      decimals="-3"
      id="Tc_8qfYqMUguUOctiNJKKuAoA_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-87000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg"
      decimals="-3"
      id="Tc_lb_gVbL3dEantuC9wAkawQ_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">64000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug"
      decimals="-3"
      id="Tc_7efEEU1hIUCoBGZg0wN_Jw_6_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-65000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw"
      decimals="-3"
      id="Tc_rfeJlI6uekGBgaD2J33h4g_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">24095000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ"
      decimals="-3"
      id="Tc_5C80LQwrdUix2YLDS-z1KA_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6664000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg"
      decimals="-3"
      id="Tc_RUnyYqtOekqeba6froRLLA_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">21918000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug"
      decimals="-3"
      id="Tc_TSkG-NxDk0SkmPRktceUrg_7_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">52677000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q"
      decimals="-3"
      id="Tc_TgTqkXE25k-yK4v4Bfv21A_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">485000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw"
      decimals="-3"
      id="Tc_JUg6IWEAvEmbELdsyCzFwA_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">469000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow"
      decimals="-3"
      id="Tc_S82EAk-35EmHNBspUoEeQg_9_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1853000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A"
      decimals="-3"
      id="Tc_aCVMGWDDD02PSsco6BW_0Q_9_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2807000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow"
      decimals="-3"
      id="Tc_M0XHht6ghU6HfZI_Ls07kA_10_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">151000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A"
      decimals="-3"
      id="Tc_50DJj1TjekuOp55kpOWxIQ_10_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">151000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q"
      decimals="-3"
      id="Tc_kdMsA7Yw2E-KgKgrDTyLpQ_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">776000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw"
      decimals="-3"
      id="Tc_5zpqp3TdjUCfBAf7smIvwA_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1074000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow"
      decimals="-3"
      id="Tc_4QiKLLW_R0qnDggw9aXXXA_11_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">693000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A"
      decimals="-3"
      id="Tc_yQlP-Na3HUuxpEWZFdPhSg_11_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2543000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q"
      decimals="-3"
      id="Tc_wjaekVJu60qMIVA1DWFsKw_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">748000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw"
      decimals="-3"
      id="Tc_P6sBCD58P0iLi4LLld93Ig_12_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">102000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow"
      decimals="-3"
      id="Tc_Duptgj9biUmYluAsMKo17w_12_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">204000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A"
      decimals="-3"
      id="Tc_0W3Zqxgv1UiMyUIpG4iOGg_12_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1054000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow"
      decimals="-3"
      id="Tc_r8xHxlItNEG39UtxD0arig_13_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-151000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A"
      decimals="-3"
      id="Tc_SQAcbDCOskimsJ61SnjlYg_13_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-151000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q"
      decimals="-3"
      id="Tc_gqmvF7ff20-AvXPHBWmjuw_14_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1615000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow"
      decimals="-3"
      id="Tc_pYgeCJTsxkS3nj_Fvd0v1g_14_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4012000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A"
      decimals="-3"
      id="Tc_vO0Wjzv6TUyGgUOKhh8TkA_14_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5627000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow"
      decimals="-3"
      id="Tc_8eNMQG1BhUOOpFiVdbtsBA_15_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">728000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A"
      decimals="-3"
      id="Tc_xsSbGUb5YkiChoSpcQhPGA_15_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">728000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q"
      decimals="-3"
      id="Tc_RZr5gK171keJdvgwpIjoNg_16_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2654000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw"
      decimals="-3"
      id="Tc_LPuOiiCryUCI7KhZ-7YLZg_16_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">707000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow"
      decimals="-3"
      id="Tc_M2VrMfsQDky5qCVVEKoZeA_16_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3784000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A"
      decimals="-3"
      id="Tc_Dm-PjY5RqEyxyGqLzcrXGg_16_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7145000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_QJZLisK4mEeWaMAJN6xUGQ"
      decimals="-3"
      id="Tc_MvJsTKogbEWHHRLYT9mfhQ_18_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3631000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_tWFqjq24p0qwaoSd7wglwQ"
      decimals="-3"
      id="Tc_rRIYT76I4EeoFYijVTz_oQ_18_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_F10gJ1_3qU-xnghG6KhaUg"
      decimals="-3"
      id="Tc_JALoqlQgmkyUfb-s-4ofJA_18_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3905000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_L2luSBQ0CUOmWlJlGBgiVg"
      decimals="-3"
      id="Tc_lcTz9cpp1ki91XIGGBwuSA_18_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8336000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_C1u53VpXhES2Twr8_VV-IQ"
      decimals="-3"
      id="Tc_1jgkPeWY-Ea9VlWiTXgKlA_19_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7651000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_JKz_hchtG0y_TKM9VtPhiw"
      decimals="-3"
      id="Tc_WaXgHRiWo0KdozJ6y4lK5g_19_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_TAOskhj0qUKmj6GOUiAGpA"
      decimals="-3"
      id="Tc_dp6xzEVjKUuVYLPgqgDqgw_19_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11102000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_KWy6P_GcCU2aIEIfwf-H6Q"
      decimals="-3"
      id="Tc_9NcfESfmv0-9aOZDGMnHBw_19_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">21753000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_QwWpdt93TUeOUO1vd2ekLA"
      decimals="-3"
      id="Tc_lSZaDROQqUagTtdn26pwLA_20_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">30000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_1Ab9pJ7f9UOYPNdjET5WSA"
      decimals="-3"
      id="Tc_OcLpp9ChP0KqcoWhp1lGzA_20_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">77000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_Luy4xt2ioU6wUP9Q5BVL-g"
      decimals="-3"
      id="Tc_rNbgpbu7m0uIcEXfGdjWKQ_20_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">107000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_A1Zc-28a10KJsK2k_TNjow"
      decimals="-3"
      id="Tc_R-m1AOntakydBvqWLAKCcQ_21_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">285000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember__0iDAnSQ8kOD7SH6qjdtzw"
      decimals="-3"
      id="Tc_Oc0tF1_tDEubdbBwzho1iQ_21_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">80000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_sB4ayHA7TkuJDMCz0_LAiw"
      decimals="-3"
      id="Tc_gjqmKU9uHUy-wWr5KQw1JQ_21_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">291000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_AY9M0d4raU-ckFXOR_VPaw"
      decimals="-3"
      id="Tc_1YcBZ57Z7kOGWbHDhC_UMQ_21_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">656000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_CIlhujs_m0K3XcYpHjrb5Q"
      decimals="-3"
      id="Tc_n_NTjGxj5Ua-uMXFZtrMbQ_22_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">15182000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_WFVUDw-peE-APLP2wts-Nw"
      decimals="-3"
      id="Tc_zhwiJo3WHEmi0QOZoxmP9A_22_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3461000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_MxpwiHdl7EqGbDTojqs6Ow"
      decimals="-3"
      id="Tc_HuZwabQTfkyees77BlKb2Q_22_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10327000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_zzMibOJV906RvZOw7XYR4A"
      decimals="-3"
      id="Tc_zZFh64kRDEa6uZbsQGQgOA_22_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">28970000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw"
      decimals="-3"
      id="Tc_bCGl6mM76EykQrYNQU1V7Q_23_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">24095000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ"
      decimals="-3"
      id="Tc_x55J5djSoUO2F22YSnE2tQ_23_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6664000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg"
      decimals="-3"
      id="Tc_SzqVlgGn60-EMZ1QraeMgA_23_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">21918000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_The2021AcquisitionsMember_cn_r5Jm-UECTBRBYskC0ug"
      decimals="-3"
      id="Tc_Tf_BtNQ9bEu-Q2kgnlHBpg_23_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">52677000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_OpXQurELgE6ZWTVHR5cUXw"
      id="Tc_HjEMLtLWoEOS9vz9LtZ-iw_2_2">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_96aa9pGyvEmPVHgyuRze9A"
      id="Tc_PG7Z_2eUTkCjFRVSjrMINA_2_4">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_iYJrinNx8US3_JDS2i61jw"
      id="Tc_sA5DsHZVEEmDZZrGI2hgmQ_2_6">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_82Kvl8sh4kORcU3Z9dFzFQ"
      id="Tc_xmDMmZ8GpUKJ8uMHALAoCg_3_2">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_IbJEW73HBEy57YRp8uftKA"
      id="Tc_ZL-sNYb7Tk2Xmr04osVK3g_3_4">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ZI94cnnyBUqO9mu597uobg"
      id="Tc_chTk5bVVs0GUAgSKxdE0wQ_3_6">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_QY9PRynUCEuXIJeGAzYh8Q"
      id="Tc_diYCiitSp0K4yPGcJ45e8Q_4_4">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_mDe5LIEq1kizEWJo9aQLBQ"
      id="Tc_ojbBo-3QGEC5VYvzvqom4A_4_6">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_HhPjaBaLAk--NZLKhCGl7w"
      id="Tc_PraeKA7mjECiKbuPU0mY5A_5_2">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_hgEDwWyEoEyqPhkAlio-Gw"
      id="Tc_SMXjZxVZ0UmRc5jRZdY6dA_5_4">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_ufh9C_8PX0q_er__XG15VA"
      id="Tc_8eUPzYKVfEyYqX08Z4QZnA_5_6">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_12_2019_To_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_XwzrU8ENo0OG_AANymt7Zw"
      decimals="-5"
      id="Narr_ZjyPRPPnekCO5Ral_-AbkA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">248900000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued
      contextRef="Duration_2_12_2019_To_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_XwzrU8ENo0OG_AANymt7Zw"
      decimals="-5"
      id="Narr_oLkm1RPz0UGzj3c3yZ7_JA"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">300000</us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_EWzTXDK11kuuajqtQLW5Xw"
      decimals="-5"
      id="Narr_25_hY9d7ykeAYXpml1DOyA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6400000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_EWzTXDK11kuuajqtQLW5Xw"
      decimals="-5"
      id="Narr_19Z9DMJSU06iab9C1R1TJQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5200000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible
      contextRef="As_Of_2_12_2019_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_EWzTXDK11kuuajqtQLW5Xw"
      decimals="-5"
      id="Narr_vIdeMIEi00u_RFdcNnlqdA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1200000</us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_5_10_2019_To_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_JMmmRI9sbECGGlYuO1HaJg"
      decimals="-5"
      id="Narr_ttaDRm-uxkCdlhYFLjLy1w"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">21800000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_UdmFWIytNUKEePP1VREI2Q"
      decimals="-5"
      id="Narr_rt5tAuxho069Sh0hLbCE3w"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">9000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_5_10_2019_To_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_JMmmRI9sbECGGlYuO1HaJg"
      id="Narr_ZZ5Mp8v9q0epq9gmwwPqDg">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_UdmFWIytNUKEePP1VREI2Q"
      decimals="-5"
      id="Narr_hDmzNTRM4kCR9haq0QpBog"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1500000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_UdmFWIytNUKEePP1VREI2Q"
      decimals="-5"
      id="Narr_okueL9nGY0uB-pgMGhZRgQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">400000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_5_10_2019_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_UdmFWIytNUKEePP1VREI2Q"
      decimals="-5"
      id="Narr_st10ITkTKkal_Xg3ojyYQg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">400000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_6_27_2019_To_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_m7ZQo6l4GEGBffNZAjZ1cA"
      decimals="-5"
      id="Narr_-AcbS3nFSUGMLYLkZTQ0tg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">18600000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_LhkN6ua3y0WxshKVcjKCGQ"
      decimals="-5"
      id="Narr_KID1Ve1fakCqq4Nd-4kHZQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">900000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_LhkN6ua3y0WxshKVcjKCGQ"
      decimals="-5"
      id="Narr_BViOkQ6SjUaoxdaNDJynlg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">800000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible
      contextRef="As_Of_6_27_2019_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_LhkN6ua3y0WxshKVcjKCGQ"
      decimals="-5"
      id="Narr_tpaeq8ZX1Ue2sQD92_zU1g"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">100000</us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_8_20_2019_To_8_20_2019_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__K_CKExkQUGKL4V6QnHqHQ"
      decimals="-5"
      id="Narr_wwTyNga6DkegOhbzwQ_avQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11700000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_8_20_2019_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_cFf-BZNtEUyExQjSmseeCw"
      decimals="-5"
      id="Narr_SkFk1WcTo0uYEsZZIg7lzg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">600000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_8_20_2019_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_cFf-BZNtEUyExQjSmseeCw"
      decimals="-5"
      id="Narr_cbDyriz82kC9AvEugImVdw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">600000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA"
      decimals="-3"
      id="Narr_5H3DW5hPWke4et_Hp7jHVQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">170000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw"
      decimals="-3"
      id="Narr_jr-l1vF2zk-ewo58gJBC5Q"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">213000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg"
      decimals="-3"
      id="Narr_gHW1CMYwFUCU_212GNFc1w"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2700000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__FM86vXOh02yrHBKuD8f4g"
      decimals="-3"
      id="Narr_geJr9vEiF02btJoqQH6jRQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">507000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA"
      decimals="-3"
      id="Tc_DPFjpyjGmkSrRnoHThbPSA_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">239863000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw"
      decimals="-3"
      id="Tc_Q9sim2QKAkOy9oe44U_a_Q_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">21833000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg"
      decimals="-3"
      id="Tc_gJk4F-VEmUy1x-YM1ZQ0Nw_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">18639000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__FM86vXOh02yrHBKuD8f4g"
      decimals="-3"
      id="Tc_fN4F9DEtMk-LSQDNe5DHUQ_4_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11718000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ"
      decimals="-3"
      id="Tc_BeksGAraS0-x8Ttd_Ud3iQ_4_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">292053000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA"
      decimals="-3"
      id="Tc_nDUCumT790Gr1q83r__BYg_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">9045000</us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable>
    <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ"
      decimals="-3"
      id="Tc_xvUa1zZ4ak6xLlTeO3PTDg_5_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">9045000</us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw"
      decimals="-3"
      id="Tc_a9at7Vyue0yKjdrVTziOVw_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1450000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ"
      decimals="-3"
      id="Tc_dZUHuGLB_UuDGPn_lm3GIQ_6_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1450000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA"
      decimals="-3"
      id="Tc_AuFFUkV_yk-h6Rr15dyz8Q_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1147000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw"
      decimals="-3"
      id="Tc_7vG-vR1A-kKNlk5QUXySNQ_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">62000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg"
      decimals="-3"
      id="Tc_oRD_17vJvUCUi0hb8sRc1g_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">250000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ"
      decimals="-3"
      id="Tc_ldvjwRCs3E2pPD5SDlsykQ_7_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1459000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA"
      decimals="-3"
      id="Tc_uJZ6OXKTQESqiUiGO-O5Dg_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">250055000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw"
      decimals="-3"
      id="Tc_PFjkkLO1g0eQA0ywQzTnug_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">23345000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg"
      decimals="-3"
      id="Tc_LOnspsTIVk6nR1YSzUPcAw_8_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">18889000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__FM86vXOh02yrHBKuD8f4g"
      decimals="-3"
      id="Tc_RWMOfeHglEaLcVhckaC6jA_8_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11718000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ"
      decimals="-3"
      id="Tc_1BdU5kyKoUOrfgrR_gO6Yg_8_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">304007000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw"
      decimals="-3"
      id="Tc_W51GMnHjDE6yCR5eBL1nHA_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6403000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ"
      decimals="-3"
      id="Tc_Su762MHibUGgFjpdQDK1ug_10_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">689000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw"
      decimals="-3"
      id="Tc_17ee1wWOEE-r9MBemTIONw_10_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1470000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw"
      decimals="-3"
      id="Tc_ssiyZHYLq0W6w5OBPhU18g_10_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">815000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw"
      decimals="-3"
      id="Tc_QDap4X7BeEWSbWYHs6k-bQ_10_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">9377000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw"
      decimals="-3"
      id="Tc_vswfjp4WTUePHJGX4m2InA_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">30000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ"
      decimals="-3"
      id="Tc_vzcjyMb3gkaFmeyNq8V4XQ_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2048000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw"
      decimals="-3"
      id="Tc_xKSLZKGN2UC8LkTa0VYXgA_11_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">257000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw"
      decimals="-3"
      id="Tc_71Ggoo1tSU6FZ0jA4A3GqA_11_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">35000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw"
      decimals="-3"
      id="Tc_BdOXAe3YuEeXhTRLlhvXsg_11_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2370000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw"
      decimals="-3"
      id="Tc_uuJw3IGmiEuZCKLiWFFV1Q_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">30924000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw"
      decimals="-3"
      id="Tc_zhzCSLJr802CL0MDxm3ynA_12_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">30924000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw"
      decimals="-3"
      id="Tc_otCdP3lR606dAt0V_GBCWg_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1188000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ"
      decimals="-3"
      id="Tc_cMeM3T30BUKZj_VsTBid4g_13_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">68000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw"
      decimals="-3"
      id="Tc_WXUPZK9yrEmv08n97JjPAw_13_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">232000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw"
      decimals="-3"
      id="Tc_9auMfLyvOkyVSWv07CNZpA_13_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">194000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw"
      decimals="-3"
      id="Tc_vDG73zVnhECHEy0uiOgabQ_13_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1682000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw"
      decimals="-3"
      id="Tc_g6omwkCglU-81R2cvk1ApQ_14_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">840000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ"
      decimals="-3"
      id="Tc_EXDiVtjgNECHT90mN5o6uw_14_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">352000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw"
      decimals="-3"
      id="Tc_thVSrzBcokWNWsYXVBrZBg_14_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">874000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw"
      decimals="-3"
      id="Tc_b3-lOxCVs0WklzwQwdhCGQ_14_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">284000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw"
      decimals="-3"
      id="Tc_dsB7dMqNqkybz9XembrV_Q_14_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2350000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw"
      decimals="-3"
      id="Tc_p4N37T4NokC1TM-ULzYPaA_15_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10267000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ"
      decimals="-3"
      id="Tc_DTb8DQ_nUEivEFay5X54UQ_15_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">278000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw"
      decimals="-3"
      id="Tc_T9YpGJnE-Uu7-Tt9A8wACg_15_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">813000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw"
      decimals="-3"
      id="Tc_gZ_PqXjVoUWNIvKsTegJ2w_15_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">9000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw"
      decimals="-3"
      id="Tc_-ZGzLMVvOkOSbGHZoqIc6g_15_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11367000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw"
      decimals="-3"
      id="Tc_pDJXVxSozkmwbGbfTkOTyg_16_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1188000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ"
      decimals="-3"
      id="Tc_-pmhEufc9kaGzzS6EHfkig_16_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-68000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw"
      decimals="-3"
      id="Tc_RbjLaaIKtEGPb5XXfsvgYA_16_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-232000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw"
      decimals="-3"
      id="Tc_nAImTXl0TU-jqjorYrE5OQ_16_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-194000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw"
      decimals="-3"
      id="Tc_tMgtPCxa10ybBFqBcRMq3g_16_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1682000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw"
      decimals="-3"
      id="Tc_Axk5ozC_xEihp_kYCjr24w_17_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">282000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ"
      decimals="-3"
      id="Tc_gaeMC0fIe0GceF10Pd1ikw_17_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3332000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw"
      decimals="-3"
      id="Tc_o6iaTj4R1kalCJV5yqkxIg_17_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2316000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw"
      decimals="-3"
      id="Tc_O0pKBPJxxkWstxlXFZ7k2g_17_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1352000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw"
      decimals="-3"
      id="Tc_I7o6qUkSNkKTA2JOfkzu6Q_17_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7282000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw"
      decimals="-3"
      id="Tc_brGuftI2kUWCHbPPu3FiVA_18_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-25968000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ"
      decimals="-3"
      id="Tc_IWkO-Ld94kijSomw0O_3GQ_18_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1225000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw"
      decimals="-3"
      id="Tc_UuEhWptcnUa9ZVVPaCHnHg_18_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2276000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw"
      decimals="-3"
      id="Tc_WRm_IC_T90WZpr6mSCW-vA_18_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">795000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw"
      decimals="-3"
      id="Tc_1r4-bL5lNU--eFIyhNtwjw_18_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-21672000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_-RiW0iv7UUCv1zdRGwiO-A"
      decimals="-3"
      id="Tc_eUC13U9VZUiaFaFWpgYIgw_20_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">32186000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_UaWFtW-ymEac39ZpsOI9Mw"
      decimals="-3"
      id="Tc_CYk2s-rLeUG2sQGpEEVFrA_20_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_oO9lFQJTbUSxS7UXzSWnPA"
      decimals="-3"
      id="Tc_xNXTZmICi0m4Jvq_5FXgpA_20_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10839000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_GBIsGRYPq0KW3gkpF98WBw"
      decimals="-3"
      id="Tc_gjcGay9aRE-6hsiEIGNIPw_20_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_8lJAxmSWeUWeY2KhOn6Bhw"
      decimals="-3"
      id="Tc_8CtjcaHS5kmw0eZd_-R0Zw_20_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">50625000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_EMjy3I83rEi_Uywh6-FkXQ"
      decimals="-3"
      id="Tc_rqCFoQ5Z6keyIdI-zr2MXw_21_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">69422000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_tGsJoTzniEuZ2nBbpcH4mg"
      decimals="-3"
      id="Tc_07YruI35X0yHTSBSvCsP3A_21_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_eTIEUugiW0yBBvixxgp-Yw"
      decimals="-3"
      id="Tc_VhToVvZpTkq3lFkKmfq4Rg_21_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_-z53bdCWJ0qfr2IOa7OwDg"
      decimals="-3"
      id="Tc_ZgoRlEQ2xE2jdfsfUOb_fQ_21_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">80022000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_lZhiZbsAHEaZ1ucIjCKFUg"
      decimals="-3"
      id="Tc_9BVOytOCSESAJ8ng0jTeNw_22_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">528000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ZQHQGJhj7USnLe7o6yF-LQ"
      decimals="-3"
      id="Tc_f6tAzeeW1k-Ns89DEKUM8Q_22_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">200000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_JKgy9A0JoE6CxbpXp4agWg"
      decimals="-3"
      id="Tc_nVGp7R40TECTcN8r45RnsQ_22_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">102000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_WUiitBuZxkaT_KhhU0_gnQ"
      decimals="-3"
      id="Tc_aSUg67lxQUix3JHArSuspw_22_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">50000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_9OPl-_NamU-8jPKQBsPFcQ"
      decimals="-3"
      id="Tc_J-YgfD6Cp0KWmGo8gHlfLg_22_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">880000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_As8x__qscEqyyK1LbmzYig"
      decimals="-3"
      id="Tc_ZF4ynbO5SE-UbbbpFdVYPg_23_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3166000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_xGBeHZqGfUecRTFn1FKezg"
      decimals="-3"
      id="Tc_OTdcBpkLlU2Lh9ehZRp6ag_23_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_qYfwYNOh80OpqM6Igh29dQ"
      decimals="-3"
      id="Tc_h9kdPnzHLUiCVhK1FKRrAw_23_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">205000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_LpDbjRYSq02nc1l1CVxsWw"
      decimals="-3"
      id="Tc_aUQmitQ5ekydvF8bkrNwjg_23_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">150000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_DRyHZVXCOkG9NuodBL4_zg"
      decimals="-3"
      id="Tc_MLFXp7OrzkW9zIetAvB1hA_23_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3821000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_sqtoh9lu30qM7BSQj6HYOw"
      decimals="-3"
      id="Tc_NkUbTM5mbkqnBMuBJ_aaBg_24_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">118785000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_9WH4Zj-BR0ysw52K_01WOQ"
      decimals="-3"
      id="Tc_lWAyPVCTWECLzT8XlF3kNw_24_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12670000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_jpU64iVlP02QKSFSkrnYmw"
      decimals="-3"
      id="Tc_8RQY18PQ2EupCpimG2UmwA_24_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10019000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_jW6NhETs5USlsTwbwcM-gw"
      decimals="-3"
      id="Tc_GuqXnBfG-0-plWvlpqM-fw_24_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5513000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_fLx2g_xN9ki6UQkH-GJbOw"
      decimals="-3"
      id="Tc_9auW2CYjtki6xRRn8lT8Tw_24_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">146987000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA"
      decimals="-3"
      id="Tc_hWQMuY89ykGHLzVhTXXRlw_25_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">250055000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_mho20aoi6kaAHoNAdBc5Lw"
      decimals="-3"
      id="Tc_dxpb7fkIa0iaKXHro7DkFQ_25_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">23345000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_XNQLYSc5U0qDuwiRAOXXdg"
      decimals="-3"
      id="Tc_mZhkYwCFCU-5_0hViv94AQ_25_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">18889000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember__FM86vXOh02yrHBKuD8f4g"
      decimals="-3"
      id="Tc_x6A7vflIDkCilof6PfevuA_25_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11718000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_The2020AcquisitionsMember_mgzLfDrLak2dp6l2M5Y5QQ"
      decimals="-3"
      id="Tc_DF7CdhN_lU-ol-94Mi_6eA_25_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">304007000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_toEokvOHmkGkRwW0VFGSFQ"
      id="Tc_wH6sPvBm3UeYPfhnY_eXIg_3_2">P14Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_AodaZuJJhEmLGfk5vM_4Xg"
      id="Tc_RWTXnAzQAkiF4j_Q1WeelQ_3_4">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_VI2m3FobU02SMVYSyVJ6CA"
      id="Tc_s7lxPLlzkkCy-G21QxpmVw_3_6">P9Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_clruato9GEygS8dCpkf03w"
      id="Tc_hmtrvHamzkqi9VubQzyfXg_3_8">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_QslD97aGzUSmxgNUgo0gmQ"
      id="Tc_jOeTAGf0t0OaZYm6Zmb5sQ_4_2">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_NxVrBFDtfE2aU_eySMTHTQ"
      id="Tc_xxg-koh-vEmpha9I8GoIgw_4_4">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_Rjjd1fsOdkG_a8K7mc9t2g"
      id="Tc_PgXrnJklSEie-OZWutyJmA_4_8">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_-cen7Q9c80KeAvXRKzVkoQ"
      id="Tc_UOtQ__a0nkWi_9LRNMtSEg_5_2">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_upldn00obEaI0YwkfSbKKw"
      id="Tc_EwasZOnWAkKhyQDC_8-wGQ_5_4">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_8vVpAF_3PUOLOUfUD_AZSA"
      id="Tc_6CiEaOeQh0COt77Q37LUvw_5_6">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_MyJws-_XkEOnbAWEolXtkA"
      id="Tc_UUpK7m_ziE2duv71tF-A7g_5_8">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_IlkBq9tWJ067uQ8n3RQeDg"
      id="Tc_9jRPskRIY0yiHGOG2D5xuw_6_2">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_CoreTransportTechnologiesNzLimitedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_RFl-ivDUpkuM4gPqQc1uoA"
      id="Tc_u-W9HIg7okSSv5N-EZdksA_6_4">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_StepcomMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_vOSTvRk7qkWykSTBxtWbFg"
      id="Tc_TrADC2MPbEGkWNMsMWBHgQ_6_6">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_BesttransportMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_M_zFBBQA-kCCKiZ0dMBFNw"
      id="Tc_soFHl4V80UayCdN-XZKdfA_6_8">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:BusinessAcquisitionProFormaInformationTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_0LCaiyIDhUCHvlWn7rlFEg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13.03%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13.03%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 429,531&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 369,271&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 354,484&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net income&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 85,549&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 48,788&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 30,933&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Earnings per share&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1.01&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 0.58&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 0.38&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 0.99&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 0.57&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 0.37&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:BusinessAcquisitionProFormaInformationTextBlock>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_0Q0RF6mmhEykgNXsyR7Sjg_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">429531000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_Y6QxSe2gnkOmuYqCeYrr8w_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">369271000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_pNSuXOOkd02DxI63P_z37g_3_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">354484000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_tvfC_bo_OkivKrPzvO-Qnw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">85549000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_7X13IxkCZU2t8rpdn0Ku0g_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">48788000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_92sx1O2Y_k6jFRBDAschCQ_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">30933000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Tc_CFVcBUYiIkyZuS_11O9o4g_6_2"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">1.01</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Tc_GEGy4Hrx8E6w6mA7VqL2bg_6_4"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.58</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="2"
      id="Tc_mkg5ehznvEaBbrQR0-EZ7A_6_6"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.38</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Tc_PCKRQ5imH0aIvhN9CGCQFg_7_2"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.99</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Tc_ZYUuLQ9tlEOphu0ANG81EQ_7_4"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.57</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="2"
      id="Tc_PCjC8wqlXkSAJtkk2Txywg_7_6"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.37</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_jNjDPZ_HMEiMRiyyS1iN_g">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;4&#160;&#x2013; Fair Value Measurements&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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, the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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;/p&gt;&lt;table style="border-collapse:collapse;font-family:'Arial','Helvetica','sans-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:17.85pt;"/&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:9.5pt;vertical-align:text-top;white-space:nowrap;width:17.85pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;Level 1&lt;/span&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;&#x2014;&lt;/span&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;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:'Arial','Helvetica','sans-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:17.85pt;"/&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:9.5pt;vertical-align:text-top;white-space:nowrap;width:17.85pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;Level 2&lt;/span&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;&#x2014;&lt;/span&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;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:'Arial','Helvetica','sans-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:17.85pt;"/&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:9.5pt;vertical-align:text-top;white-space:nowrap;width:17.85pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;Level 3&lt;/span&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;&#x2014;&lt;/span&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;inputs are generally unobservable and typically reflect management&lt;/span&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;&#x2019;&lt;/span&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:55.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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level 1&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;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level 2&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;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level 3&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;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.91%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Assets:&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Equity derivative contracts&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 10,863&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 10,863&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Liabilities:&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Contingent consideration&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,990&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,990&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of January&#160;31, 2021:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:55.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;Level 1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;Level 2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;Level 3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Assets:&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Equity derivative contracts&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 8,001&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 8,001&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Liabilities:&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Contingent consideration&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,671&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,671&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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 January&#160;31, 2022, we had equity derivatives for 252,011 Descartes common shares with a weighted average price of $29.55.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The fair value of equity contract derivatives is determined utilizing a valuation model 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 administrative expenses in the consolidated financial statements. For the&#160;years ended January&#160;31, 2022, 2021 and 2020, we recognized an expense (recovery) in general and administrative expenses of ($2.9) million, ($3.4) million and ($4.0) million, respectively.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The following table presents the changes in the fair value measurements in Level 3 of the fair value hierarchy:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:82.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:'Arial','Helvetica','sans-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:4.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13.44%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level 3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,924&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Increase from acquisitions&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,239&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Cash payments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (95)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Charges through profit or loss&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,731)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 334&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,671&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Increase from acquisitions&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3,339&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Charges through profit or loss&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 5,070&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (90)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,990&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Estimates of the fair value of contingent consideration is performed by the Company on a quarterly basis. Key unobservable inputs include revenue growth rates and the &lt;span style="-sec-ix-hidden:Hidden_v1hWYzs9B0OsbeIvMBY_nA;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;discount&lt;/span&gt;&lt;/span&gt; &lt;span style="-sec-ix-hidden:Hidden_pcGK0s4hq0-HLRSRmdjzvQ;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;rates&lt;/span&gt;&lt;/span&gt; applied (11% to 13%). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.&lt;/p&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Group_k1TC8La-10yw_sXNSUwblQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:55.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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:'Arial','Helvetica','sans-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:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level 1&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;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level 2&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;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level 3&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;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.91%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Assets:&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Equity derivative contracts&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 10,863&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 10,863&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Liabilities:&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Contingent consideration&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,990&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,990&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:55.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;Level 1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;Level 2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;Level 3&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Assets:&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Equity derivative contracts&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 8,001&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 8,001&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:55.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Liabilities:&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Contingent consideration&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,671&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:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&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:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,671&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_z-O83c1_EUOg0PNZOSrN5A"
      decimals="-3"
      id="Tc_59TLOG2LBE6kwNc6DQ-cNQ_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10863000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_71LXGAtlIUC1kG67xPuk1Q_3_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10863000</us-gaap:DerivativeAssets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_iXJAkxzkfEmbWhtNsF9DaA"
      decimals="-3"
      id="Tc_2KZLSq851k-d6Du0jhefVw_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12990000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_WjLoNjJvuE-oZF_Tm4_dgA_6_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12990000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_RgbL7tZqa0-Mtc-SaBHNhw"
      decimals="-3"
      id="Tc_q2xtt0QLvUK9KGC2fXZ52Q_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8001000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_K2POk4-LpU6mROQC5jhw7w_3_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8001000</us-gaap:DerivativeAssets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pN3gJRdEbUmTra2ded8SGA"
      decimals="-3"
      id="Tc_YzedxY9WbECKthcIpOzGCg_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4671000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_foWxIiwG4kykPk626CcNXQ_6_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4671000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <dsgx:DerivativeInstrumentSharesOfCommonStockHeld
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="0"
      id="Narr_835TlTmAPESv9gSvBdOiTQ"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">252011</dsgx:DerivativeInstrumentSharesOfCommonStockHeld>
    <dsgx:DerivativeInstrumentCommonSharesHeldPerShare
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="2"
      id="Narr_fpkO5t5zh0WJmwCnVA48sA"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">29.55</dsgx:DerivativeInstrumentCommonSharesHeldPerShare>
    <us-gaap:DerivativeGainOnDerivative
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_fDOL7lqI6U-y6cUkIlDJ-g"
      decimals="-5"
      id="Narr_NNdBX7VF6UW_nCTjejuoiA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2900000</us-gaap:DerivativeGainOnDerivative>
    <us-gaap:DerivativeGainOnDerivative
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_GmlB_N6orEO4bj1gBhlFpQ"
      decimals="-5"
      id="Narr_t1QqrOe72UKi8nSf6KOAAg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3400000</us-gaap:DerivativeGainOnDerivative>
    <us-gaap:DerivativeGainOnDerivative
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_J1LSEqJWtUeeWzLBwEGttA"
      decimals="-5"
      id="Narr_hKRL4Oii40qqr4RhjvxpRg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4000000.0</us-gaap:DerivativeGainOnDerivative>
    <us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_vO_VutH63kW1ojQvGiwLPA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:82.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:'Arial','Helvetica','sans-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:4.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13.44%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Level 3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,924&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Increase from acquisitions&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,239&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Cash payments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (95)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Charges through profit or loss&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,731)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 334&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,671&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Increase from acquisitions&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3,339&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Charges through profit or loss&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 5,070&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (90)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:82.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:4.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,990&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_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_CfGPFGAsT0yBB-18Em2TxQ"
      decimals="-3"
      id="Tc_40XZBYNIGkC9FyF8iELdsw_2_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1924000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_4HEL19AECkW499iCsp6lQg"
      decimals="-3"
      id="Tc_DSTYk_KY60WVQFr2a3vKoQ_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4239000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_4HEL19AECkW499iCsp6lQg"
      decimals="-3"
      id="Tc_pleq70LHyESgy3-EzGI--A_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-95000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_4HEL19AECkW499iCsp6lQg"
      decimals="-3"
      id="Tc_MlTA31iXUE-vR2FcE4Omsg_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1731000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_4HEL19AECkW499iCsp6lQg"
      decimals="-3"
      id="Tc_hoMe6Ik52Ue5pbHvJnqbYQ_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">334000</dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pN3gJRdEbUmTra2ded8SGA"
      decimals="-3"
      id="Tc_GvcpjayVbE-AGh8jZXRSFA_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4671000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_LYIvNCFuHkin3VL-ZTwqZg"
      decimals="-3"
      id="Tc_T4nHA-QbNkqzMbcNEp1eMA_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3339000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_LYIvNCFuHkin3VL-ZTwqZg"
      decimals="-3"
      id="Tc_RjtfdxBM4E2RCX1EKyEnaA_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5070000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_LYIvNCFuHkin3VL-ZTwqZg"
      decimals="-3"
      id="Tc_WjHs3NdqXUqpIZ99l5mGRQ_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-90000</dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_iXJAkxzkfEmbWhtNsF9DaA"
      decimals="-3"
      id="Tc_dvwKgkRSykKJRcQyNfwOQA_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12990000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_x4G7EFWpMU67ejOu1XZTNg"
      decimals="0"
      id="Narr_cA1zVXoQGkeagdxa2KJ4og"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">11</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_gQibUrB05UCy_-zIIsEmzQ"
      decimals="0"
      id="Narr_h1qmS5nsUkq481bGeZNqNA"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">13</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_Kb58SBaGb0Gv52YQak3PMA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;5&#160;&#x2013; Trade Accounts Receivable&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Trade accounts receivable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 43,565&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 39,536&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Less: Provision for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,860)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,330)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 41,705&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 37,206&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Included in accounts receivable are unbilled receivables in the amount of $0.5 million as at January&#160;31, 2022 ($0.3 million as at January&#160;31, 2021). No single customer accounted for more than 10% of the accounts receivable balance as of January&#160;31, 2022 and 2021.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;The following table presents the changes in the provision for credit losses as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:83.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13.53%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;for Credit&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,003&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current period provision for expected losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,681&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Write-offs charged against the provision&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,418)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 64&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,330&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current period provision for expected losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,007&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Write-offs charged against the provision&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,456)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (21)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,860&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_P05KG3hAI06_BuAlGvIDCA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Trade accounts receivable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 43,565&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 39,536&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Less: Provision for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,860)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,330)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 41,705&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 37,206&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_rnVGKGq6nkOp4ijJyqJkKg_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">43565000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_0xwD6W-ymE-jOtI3A05Fig_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">39536000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_ctiiw6bpSUqqY78-3s5GIw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1860000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_abjhEU8dEUO0way_miL4Uw_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2330000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_E74FxQ4Zqkq3lyMG4FakeQ_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">41705000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_jZyjdNkfuUSkYyYfarU8NQ_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">37206000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_MG_2m_7ryUug8m73yVDQhA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">500000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-5"
      id="Narr_Sil0ViwY6Ey80K77vljRYA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">300000</us-gaap:UnbilledReceivablesCurrent>
    <dsgx:PercentageOfAccountReceivable
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Narr_UcN8BN93vkyEMCPWJZSurA"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.10</dsgx:PercentageOfAccountReceivable>
    <dsgx:PercentageOfAccountReceivable
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Narr_HZyhkE-Yp0WcufhIJqW3XQ"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.10</dsgx:PercentageOfAccountReceivable>
    <us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_z457TqMN-0GvFiY_6HAzOA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:83.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13.53%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;for Credit&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,003&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current period provision for expected losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,681&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Write-offs charged against the provision&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,418)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 64&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,330&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current period provision for expected losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,007&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Write-offs charged against the provision&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,456)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (21)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,860&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_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="-3"
      id="Tc_Jefawrbj4EKI_QJvfDsY7w_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2003000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_9J9Uek4dT0iJFnSRCwo4bA_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1681000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_u0kFUdAvvkuFtI6fTuzRTw_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1418000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_kTMLOsaTQkqEcXLb0j3h3Q_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">64000</dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_M5himV-tRkCs9CJ9BbTHMA_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2330000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_G08wZx_izkaUBkvKPippRg_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1007000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_hMweGj9HVUmIXnYtSkVsTA_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1456000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_tv9ajxmhWEKR8r3q3Cm69g_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-21000</dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_iXBTw9m9vkWgZKCdg2J1Rg_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1860000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <dsgx:OtherReceivablesTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_5qerMWPbUEGI7a4P2L56VQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;6&#160;&#x2013; Other Receivables&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net working capital adjustments receivable from acquisitions&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 309&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 237&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Other receivables&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 13,766&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 14,593&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 14,075&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 14,830&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At January&#160;31, 2022, $0.3 million ($0.2 million as at January&#160;31, 2021) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.&lt;/p&gt;</dsgx:OtherReceivablesTextBlock>
    <dsgx:OtherReceivablesTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_EItDn506MES48OE6GPhujQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net working capital adjustments receivable from acquisitions&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 309&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 237&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Other receivables&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 13,766&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 14,593&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 14,075&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 14,830&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</dsgx:OtherReceivablesTableTextBlock>
    <dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_xyrFMP9pXkWbWhKfCbX7yw_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">309000</dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions>
    <dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_OWkbRYH7RkSJMWyUFQ7k_w_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">237000</dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions>
    <us-gaap:OtherAssetsCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_C2ZGKSrJa0iBpSsPqBn8Lg_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">13766000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_QsT_z1Q8a0mfZS10kzT4YQ_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14593000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_xaOq76UER0OeIxybG_WgJg_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14075000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_LGLyNSE0r0WGcNGTS0dTRg_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14830000</us-gaap:OtherReceivablesNetCurrent>
    <dsgx:AmountsRecoverableFromFundsHeldInEscrow
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_IoRG8b_I20-nqcEdTQN16A"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">300000</dsgx:AmountsRecoverableFromFundsHeldInEscrow>
    <dsgx:AmountsRecoverableFromFundsHeldInEscrow
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-5"
      id="Narr_ykyhjQHiakqpNWLaNzU7TA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">200000</dsgx:AmountsRecoverableFromFundsHeldInEscrow>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_U0P-GRLTcUOYrw9ILmXeHw">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;7&#160;&#x2013; Inventory&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;At January&#160;31, 2022 and January&#160;31, 2021, 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 the&#160;years ended January&#160;31, 2022, 2021 and 2020, a nominal provision for excess or obsolete inventories has been recorded in cost of revenues.&lt;/p&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_AyLZTne4vEOF547qRuFBaw">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;8&#160;&#x2013; Property and Equipment&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Cost&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Computer equipment and software&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 40,937&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 37,469&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,553&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,494&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 822&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 807&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Equipment installed with customers&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,635&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,654&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Assets under construction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 524&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 998&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 45,471&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 42,422&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Accumulated depreciation&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Computer equipment and software&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 31,660&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 28,123&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,257&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,081&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 531&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 401&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Equipment installed with customers&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,206&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 728&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 34,654&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30,333&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 10,817&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 12,089&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_eYD_K3mCzEmWlp46ftvFcg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Cost&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Computer equipment and software&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 40,937&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 37,469&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,553&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,494&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 822&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 807&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Equipment installed with customers&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,635&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,654&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Assets under construction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 524&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 998&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 45,471&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 42,422&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Accumulated depreciation&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Computer equipment and software&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 31,660&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 28,123&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,257&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,081&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 531&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 401&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Equipment installed with customers&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,206&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 728&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 34,654&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 30,333&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 10,817&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 12,089&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_hkrMSkRGkUGy4FaD2LwjiQ"
      decimals="-3"
      id="Tc_LJOgLeusk0mxWmOwxChGWw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">40937000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_W2_efZk4UEOnz2T_FP4d-Q"
      decimals="-3"
      id="Tc_GpIlqlct10e4dxqoFlLbCQ_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">37469000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_nbse0UCE-EW4cF_lZVKosA"
      decimals="-3"
      id="Tc_dSlNSEVWzk6xSMxR7HwtPw_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1553000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_vAEh8AqvVUyUGNT5U1AA7g"
      decimals="-3"
      id="Tc_RZnMGfQ2RUqMpW1xXS93mg_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1494000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_fxhEzFyKA0WbdTUOW2bHFQ"
      decimals="-3"
      id="Tc_g4S7OyEirUuzfRqfeZIirg_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">822000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_dpzYaXowaUGHEeOzNVoncg"
      decimals="-3"
      id="Tc_BYUuTnKdJE2OANmzkj2VSA_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">807000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_KzJjuDmC6USUUUb1sEVUww"
      decimals="-3"
      id="Tc_YzyOn0W37UeNEo0AHXXFwQ_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1635000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_IrgBNrYG-U-TRqB9u8qUuQ"
      decimals="-3"
      id="Tc_ET4a7csA7Ea8bzS_O2DXXA_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1654000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_rp5iMx3Ih0K6_ViVYm6lkQ"
      decimals="-3"
      id="Tc_3osC9HyyDkKXHTt03EwUXQ_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">524000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_4cdmB8XAmUyYsnIrVL3Ing"
      decimals="-3"
      id="Tc_gkrXgUu-7E-otTjC02kouw_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">998000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_gfRz0u6FM0mfqvhqX4urug_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">45471000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_-w30CTJ6v0WyJJblikWn0Q_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">42422000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_hkrMSkRGkUGy4FaD2LwjiQ"
      decimals="-3"
      id="Tc_6finR1Y4aE-ZFTAns35Y3Q_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">31660000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_W2_efZk4UEOnz2T_FP4d-Q"
      decimals="-3"
      id="Tc_QH7gI_3roEW0Ngbhcbu9zQ_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">28123000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_nbse0UCE-EW4cF_lZVKosA"
      decimals="-3"
      id="Tc_E0nKywpzs02oy2_VUa6Fzg_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1257000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_vAEh8AqvVUyUGNT5U1AA7g"
      decimals="-3"
      id="Tc_VJMKLmWmXkCJ7hUXUQDHHQ_12_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1081000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_fxhEzFyKA0WbdTUOW2bHFQ"
      decimals="-3"
      id="Tc_KP3a2syy60eR8eiEdVSjaQ_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">531000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_dpzYaXowaUGHEeOzNVoncg"
      decimals="-3"
      id="Tc_MFzD9Rr42UGDsOeh05A7ug_13_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">401000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_KzJjuDmC6USUUUb1sEVUww"
      decimals="-3"
      id="Tc_dFg4bmp86Uefvot16_RyEQ_14_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1206000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_IrgBNrYG-U-TRqB9u8qUuQ"
      decimals="-3"
      id="Tc_O8ENulML7UWBCcOcPiui-w_14_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">728000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_GLMGnaQcpkCwBjMpOnATmw_15_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">34654000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_-V3EW-41kUCbfe1CO7zYDA_15_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">30333000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_HAEc5p8vrEeA1U1rUjsAcg_16_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10817000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_taGTFEe6uke8AZ66g9oiFA_16_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12089000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_Iw2AKHY93ES33OoYfZ6-4Q">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;9&#160;- Intangible Assets&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Cost&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 251,402&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 240,479&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 326,411&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 295,161&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 9,038&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8,844&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,306&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,939&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 599,157&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 555,423&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Accumulated amortization&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 135,380&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 119,361&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 218,953&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 183,539&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 6,677&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,996&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,538&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,535&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 369,548&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 315,431&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 229,609&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 239,992&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the&#160;year ended January&#160;31, 2022 is primarily due to the acquisitions of QuestaWeb, Portrix and GreenMile, partially offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&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 $229.6 million over the following periods: $53.4 million for 2023, $41.2 million for 2024, $38.4 million for 2025, $34.1 million for 2026, $19.3 million for 2027 and $43.2 million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.&lt;/p&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_sDKbD-u6iUiMKMLl8nzAAA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Cost&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 251,402&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 240,479&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 326,411&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 295,161&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 9,038&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8,844&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,306&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10,939&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 599,157&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 555,423&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Accumulated amortization&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Customer agreements and relationships&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 135,380&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 119,361&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Existing technology&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 218,953&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 183,539&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Trade names&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 6,677&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,996&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Non-compete covenants&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,538&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,535&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 369,548&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 315,431&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 229,609&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 239,992&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_rGPZE8F7EEGVhjUZw2M6eA"
      decimals="-3"
      id="Tc_fPHjC7bDtUy5s1bz6twrrw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">251402000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_t1zQKq9u2EG0psuawWuKvg"
      decimals="-3"
      id="Tc_e39pUU_aDE-1ninmrKfBwA_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">240479000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_KidyCChL90K5qlmRPwH-NQ"
      decimals="-3"
      id="Tc_GM-mTUdTIkuciinn4FOtsg_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">326411000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_JbBgq5JeqkeJmJpd6Erqqw"
      decimals="-3"
      id="Tc_btv9C5h7sk2A51JhctwN2w_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">295161000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_0a47ECpsREmTvHqq58lxlg"
      decimals="-3"
      id="Tc_l1ZfkvRD_EaAK9t-Z4hQTA_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">9038000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_DpHhSXHT30WFldVT8ub07g"
      decimals="-3"
      id="Tc_LKLiMq3yrkeV7vKc7zSvVw_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8844000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_AQeERyWeAUmcM8TN2dBtng"
      decimals="-3"
      id="Tc_gdK5lcXUa06-jsBb17lxjA_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12306000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_nhQYimyVwEawwo6fkcZKtw"
      decimals="-3"
      id="Tc_xd4Xqm6co0O8OlshZVHSJg_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10939000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_Q5po1cVnI0aaKBe-4kUsdw_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">599157000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_wTLn3vEuG0ma5jWBZh4z_w_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">555423000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_rGPZE8F7EEGVhjUZw2M6eA"
      decimals="-3"
      id="Tc_SuAsEoGZiUKNd2T9E1jbyw_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">135380000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_t1zQKq9u2EG0psuawWuKvg"
      decimals="-3"
      id="Tc_j-8iBcYLL0WaPC_uIscd2w_10_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">119361000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_KidyCChL90K5qlmRPwH-NQ"
      decimals="-3"
      id="Tc_bFnZNWXf9EapRGLjLUdh7g_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">218953000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_JbBgq5JeqkeJmJpd6Erqqw"
      decimals="-3"
      id="Tc_4ph-CWV4WE2JeGtBR1JLdA_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">183539000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_0a47ECpsREmTvHqq58lxlg"
      decimals="-3"
      id="Tc_H93bSVEa-kSqwpifD4NfyQ_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6677000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_DpHhSXHT30WFldVT8ub07g"
      decimals="-3"
      id="Tc_Yusx9db5nEiTsDcw4kyH4Q_12_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5996000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_AQeERyWeAUmcM8TN2dBtng"
      decimals="-3"
      id="Tc_miB5-hOoAEWoidTFJampxA_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8538000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2021_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_nhQYimyVwEawwo6fkcZKtw"
      decimals="-3"
      id="Tc_mHYZbNy5tEuQPLCr1oRLCg_13_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6535000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_jx1nfJsAGUKC1smEaFRzZA_14_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">369548000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_JB04c9KpfUWBObc_PZ-I-Q_14_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">315431000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_KTszUu7iykCtb1dgZ8wGEQ_15_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">229609000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_kxNVM9enRUy0wFNTFsJRmg_15_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">239992000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_wSqN1j7O5UmckNUy924o3Q"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">229600000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_r766VH3SZEadBZCAYUIszQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">53400000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr__Ohr0gUmCEiS9Sow385zbg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">41200000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_kHwyTL4nFEK2hzu_r8uXbw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">38400000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_hNX8QObxS0yrvLlGBfeTtg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">34100000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_OYsiPcgdWEmZSn_jngseGQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">19300000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_RUH576TURUeSlhsLR1Z5FQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">43200000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <us-gaap:GoodwillDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_vEjZsl3Bt0unyW4YZJvACA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;10&#160;&#x2013; Goodwill&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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, 2020:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 565,177&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 523,690&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of Peoplevox&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 15,182&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of Kontainers&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,461&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of ShipTrack&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 10,327&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of QuestaWeb&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 21,691&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of Portrix&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 15,032&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of GreenMile&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,968&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Adjustments on account of foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (6,107)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,517&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 608,761&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 565,177&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:GoodwillDisclosureTextBlock>
    <srt:ScheduleOfCondensedCashFlowStatementTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_9d7u_GJchEyjlLpfeovQAA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 565,177&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 523,690&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of Peoplevox&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 15,182&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of Kontainers&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,461&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of ShipTrack&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 10,327&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of QuestaWeb&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 21,691&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of Portrix&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 15,032&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Acquisition of GreenMile&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,968&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Adjustments on account of foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (6,107)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,517&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 608,761&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 565,177&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</srt:ScheduleOfCondensedCashFlowStatementTableTextBlock>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_s2KJEv87LUa_wtusDg_ldw_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">565177000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="-3"
      id="Tc_Xsw6PG3KfUukWWNO7y3SOw_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">523690000</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw"
      decimals="-3"
      id="Tc_LYQHgH4LvUGSP_rttoOSWA_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">15182000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_KontainersMember_Qs021b-jokmHm1ymHEjRIQ"
      decimals="-3"
      id="Tc_Yz-ypiDHk0a8p2sDo35eCg_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3461000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_ShipTrackMember_iOH6jDMCQUW4OmvyYsofdg"
      decimals="-3"
      id="Tc_5hToYMV5P0CkmR4NffKwnQ_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10327000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_slX_bgVQI0CW6msrmwfbLQ"
      decimals="-3"
      id="Tc_Gr6KggtXIEG2dwjUkXbEcQ_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">21691000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_cTcnpaQkE06Td8DyQzqjgg"
      decimals="-3"
      id="Tc_Mdx5ax_8gka2s6QRinvdlw_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">15032000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_YuJyuSHG9Uqtu2klu3sKmw"
      decimals="-3"
      id="Tc_BS9IEPW_5kaBdC_YLq_QBg_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12968000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_BI3qOQDdDU-eT5QT8kdOpQ_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-6107000</us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments>
    <us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_D6qBtBg540e_fHA0gGfiiQ_10_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12517000</us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_FrCWy-mqyUqkduNQtU_dsA_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">608761000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_jkjYRGafLE2qWAKKZNv90g_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">565177000</us-gaap:Goodwill>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_ATkrL6c2-E6n-XgdtTpyZQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;11&#160;- Accrued Liabilities&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Accrued compensation and benefits&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 32,169&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 24,643&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Accrued professional fees&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,318&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,188&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Other accrued liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 22,955&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 13,048&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 56,442&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 38,879&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&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;/p&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_P9zriYpMm0ao2w_Aeun7ow">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Accrued compensation and benefits&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 32,169&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 24,643&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Accrued professional fees&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,318&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,188&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Other accrued liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 22,955&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 13,048&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 56,442&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 38,879&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_tD7KvCPa30Wjp1Vp4XIiCQ_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">32169000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_CZTOdLoYV0GgpR-jElEgpA_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">24643000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_lmAQjRl3Jkyz4zt5L2rkaw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1318000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_KzOeRftM0keUNH3_YLu_6Q_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1188000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_dM6PGyVG1E23xHnu7evEhQ_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">22955000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_fvuBFdR9n06xE3Up4DshZg_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">13048000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_rcsNwZ7I7ECeof-yoZfEXw_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">56442000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_G1RcLd2mmkyG0XoT2IlhFQ_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">38879000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_XNRrh1lvXk2kGQ8dC4gArQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;12&#160;&#x2013; Long-Term Debt&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We have a senior secured revolving credit facility in place with a syndicate of lenders. 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&#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 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.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;No amounts were drawn on the credit facility as of January&#160;31, 2022 and the balance of $350.0 million is available for use. We were in compliance with the covenants of the credit facility as of January&#160;31, 2022.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;As at January&#160;31, 2022, we had outstanding letters of credit of approximately $0.2 million ($0.2 million as at January&#160;31, 2021), which were not related to our credit facility.&lt;/p&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_CHgSwsp1YU-fuIhZ6XL__w"
      decimals="-5"
      id="Narr_wc3Ih6mePE63vgWmEmQovQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">350000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_ywumInG3jUiHKI12dCDfSw"
      decimals="-5"
      id="Narr__Vz5bDa1ekWtw-3G-CTprQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">500000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:DebtInstrumentTerm
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_u_RInjQ7nUm_b14xd328ug"
      id="Narr_3pdN4t_-C0u5Q050QPMvrQ">P5Y</us-gaap:DebtInstrumentTerm>
    <us-gaap:DebtInstrumentTerm
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_u_RInjQ7nUm_b14xd328ug"
      id="Narr_8yT-9KPh8UuBJ3CUkFz84Q">P5Y</us-gaap:DebtInstrumentTerm>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_LbgTJfBAc0-puJJw6dnpjQ"
      decimals="4"
      id="Narr_xvZcY7ORrke2C6IZj7JVew"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_vkNJbO3L_0iTH20RJ2bw7g"
      decimals="3"
      id="Narr_Sz1MNNC-RUCrda9b-DRpGQ"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.0250</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_7WV2WG7hY02Hue03KNCehQ"
      decimals="3"
      id="Narr_tVpw5qnVBEOBT9xep998OA"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.0020</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_8UoMpN6ffkGHrkF9TWjHWA"
      decimals="3"
      id="Narr_do5IlKPljEOU9GId5h2Lfw"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.0040</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LineOfCredit
      contextRef="As_Of_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_9VPfdHEG60GB6FjmgdjwIQ"
      decimals="-5"
      id="Narr_6Q30gSqvvE-cFH1fuJSt0g"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">0</us-gaap:LineOfCredit>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="As_Of_1_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_9VPfdHEG60GB6FjmgdjwIQ"
      decimals="-5"
      id="Narr_evMakYVcJEKdhDn5MyaMXQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">350000000.0</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_igp_2CVzE0CBAsB5gAXzjQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">200000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-5"
      id="Narr_BAC4ilh-RUmwfKpQsFyzhg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">200000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_54DEbvettEuojrglv1bQ0w">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;13&#160;&#x2013; Leases&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to 7&#160;years, some of which include options to extend the leases for up to 5&#160;years.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The components of operating lease expense were as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Operating lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,466&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,590&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,902&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Short-term lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 432&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 502&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 866&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Total operating lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,898&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,092&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,768&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Supplemental cash flow information related to operating leases was as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Operating cash outflows from operating leases included in measurement of lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,857&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,831&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,150&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;New ROU assets obtained in exchange for lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,548&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,337&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,439&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Supplemental information related to operating leases was as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Weighted average remaining lease term (years)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3.3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Weighted average discount rate (%)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Maturities of operating lease liabilities were as follows as of January&#160;31, 2022:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:83.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Years Ended January 31,&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13.53%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2023&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,349&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2024&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3,526&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,429&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,131&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 322&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2028 and thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 186&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Total lease payments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 11,943&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Less: imputed interest&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (532)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Total lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 11,411&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,029&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Long-term&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 7,382&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      id="Narr_r0SqM722K0i1fTlKOy-Xbg">P7Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
    <us-gaap:LesseeOperatingLeaseRenewalTerm
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      id="Narr_iytl4b5k4k-UJ5ym-ROpEg">P5Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
    <us-gaap:LeaseCostTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Group_ePE4zUgLR0qNwiFxMTt-Jw">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Operating lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,466&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,590&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,902&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Short-term lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 432&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 502&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 866&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Total operating lease cost&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,898&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,092&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,768&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Operating cash outflows from operating leases included in measurement of lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,857&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,831&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,150&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;New ROU assets obtained in exchange for lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,548&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,337&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,439&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Weighted average remaining lease term (years)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3.3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Weighted average discount rate (%)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_tixyee4ruUipucqP-B5fZA_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4466000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_H0_tAd0nkUC9LdC3DKsvmA_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4590000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_O6TSvGA3aUCGHsHIm9J4tg_3_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4902000</us-gaap:OperatingLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_MavhucGjd0eZRLsZhL19gw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">432000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_mljhtdf1O0mNmf6DXDYwoA_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">502000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_9TbIfo51g0uRtUEOO8VO2A_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">866000</us-gaap:ShortTermLeaseCost>
    <us-gaap:LeaseCost
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_GVAKRGj0vUSllTulQ-7iQw_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4898000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_qmWkBCmGWUC-V-CkQoFZdA_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5092000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_2euGWaM-2E-IANwVVn801g_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5768000</us-gaap:LeaseCost>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_zljGIbniLUaYrOeKlGFNDA_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4857000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_zj7EZ99DYECT_NbBPXPPvQ_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4831000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_IYE_9FqPKECirkke4s0RkQ_3_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4150000</us-gaap:OperatingLeasePayments>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_RJoRk2Wzeke1JLbFszxXYg_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2548000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_9gqCRqjKm0ScExKnuw_V4A_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2337000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_Kp99Eq_vekWWA7bFCak4EA_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6439000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      id="Tc_LOnm_S5wOE64IMq6HAMQNg_3_2">P3Y3M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      id="Tc_Cj5SeAKvgkGkryMkVsUuqw_3_4">P3Y9M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="3"
      id="Tc_tS7Tjj7V9kGrZ1rO01Nu8g_4_2"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.021</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="3"
      id="Tc_o5g_fdHmY0apFtKbomNM-A_4_4"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.025</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_wCKYpUaj7EWxJ1BwzpnMSQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:83.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Years Ended January 31,&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13.53%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="margin-left:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2023&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,349&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2024&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3,526&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,429&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,131&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 322&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;2028 and thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 186&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Total lease payments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 11,943&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Less: imputed interest&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (532)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Total lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 11,411&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Current&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,029&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:83.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Long-term&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 7,382&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_HqFQqB3aXUGWW9U4Z5ENjw_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4349000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_GlqywlBEyUy9N-NqOvZFdQ_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3526000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_2Wps9_5L8ka6-x6DV-HO-A_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2429000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_4AN_8u0kSkW4KUN7UY76mg_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1131000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_da_FT9H5e0iOJtdbdI1PKw_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">322000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_oOtgO9ioJESt65LpXg0GLw_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">186000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_C131-8pUUUiEka4kF-H_mQ_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11943000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_JymQ0lCDqUiaWkjr1S613A_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">532000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_OfOTv6ZhlkmDIaMRE5jBqg_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11411000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_dfTDDjhsM0mLDmNPQNq8VA_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4029000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_HgHipK3bIEKp1rk56FlbIQ_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7382000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_7UUuaRQXaEab5EKrbEuKeg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;14&#160;- Commitments, Contingencies and Guarantees&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Commitments&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;As described in Note&#160;2 to these consolidated financial statements, 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 nil and $1.0 million, respectively, at January&#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 January&#160;31, 2022, we had equity derivatives for 252,011 Descartes common shares and a DSU liability for 252,011 Descartes common shares, resulting in no net exposure resulting from changes to our share price.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Contingencies&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Product Warranties&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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 consolidated financial statements.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Business combination agreements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;In respect of our acquisitions of Kontainers, ShipTrack and GreenMile, up to $35.6 million in cash may become payable if certain revenue performance targets are met in the two&#160;years following the acquisition. A balance of $13.0 million is accrued related to the fair value of this contingent consideration as at January&#160;31, 2022.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt;"&gt;Guarantees&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Intellectual property indemnification obligations&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&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 &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Other indemnification agreements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&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 consolidated financial statements for the guarantees or indemnities described above.&lt;/p&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-5"
      id="Narr_0S7DjhRG0U-frFRjEx0LVg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">0</dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized>
    <dsgx:CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-5"
      id="Narr_JWRXMoVWLUKAlKYUp2QcWA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1000000.0</dsgx:CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized>
    <dsgx:DerivativeInstrumentSharesOfCommonStockHeld
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="0"
      id="Narr_Lv9TB8oGEUy3gxqhbiqmKQ"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">252011</dsgx:DerivativeInstrumentSharesOfCommonStockHeld>
    <dsgx:DeferredShareUnitLiabilityNumberOfCommonShares
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="0"
      id="Narr_4mFPiV8htUut69R1k04L2w"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">252011</dsgx:DeferredShareUnitLiabilityNumberOfCommonShares>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_COREKontainersAndShipTrackMember_Na_m748yMkC_8ItOGImQWQ"
      decimals="-5"
      id="Narr_Pp4fBF4shUeNVxpsgtfDlA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">35600000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_COREKontainersAndShipTrackMember_iGVsbJ4rcUGpAAEC07MnkQ"
      id="Narr_-BRSXKHr-U62JK67gbE8IQ">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_COREKontainersAndShipTrackMember_Na_m748yMkC_8ItOGImQWQ"
      decimals="-5"
      id="Narr_dSaXLlK1skOykRKuTBneDQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">13000000.0</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <dsgx:ShareCapitalTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_NvLfYUuL60-Ey54LyM-8_w">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;15&#160;&#x2013; Share Capital&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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 25-month period that the 2020 Base Shelf Prospectus, including any amendments thereto, remains valid is limited to an aggregate of $1 billion. No securities have yet been sold pursuant to the 2020 Base Shelf Prospectus.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;The following table sets forth the common shares outstanding (number of shares in thousands):&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-style:italic;"&gt;(thousands of shares)&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance, beginning of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 84,494&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 84,156&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 76,865&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Shares issued:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;Stock options and share units exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 262&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 338&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 95&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;Issuance of common shares&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 6,900&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;Acquisitions (Note 3)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 296&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance, end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 84,756&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 84,494&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 84,156&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Cash flows provided from stock options and share units exercised during 2022, 2021 and 2020 were approximately $2.7 million, $6.2 million and $1.5 million, respectively.&lt;/p&gt;</dsgx:ShareCapitalTextBlock>
    <dsgx:ShelfProspectusPeriod
      contextRef="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_HoZcmJS5UEGoApRP_erQ2A"
      id="Narr_uzBI8tPs10anysq6oBOAzw">P25M</dsgx:ShelfProspectusPeriod>
    <dsgx:ShelfProspectusMaximumAmount
      contextRef="As_Of_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_-1BLRqHEr0uswedXBzEx3A"
      decimals="-9"
      id="Narr_S2-OynnmQEOfpJoPyNFkWA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1000000000</dsgx:ShelfProspectusMaximumAmount>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_HoZcmJS5UEGoApRP_erQ2A"
      decimals="INF"
      id="Narr_J2vk2Hue0EKoNoHO-e5fFQ"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">0</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_y6q5-9CaRUanDE8esXBE1Q">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;The following table sets forth the common shares outstanding (number of shares in thousands):&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-style:italic;"&gt;(thousands of shares)&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance, beginning of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 84,494&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 84,156&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 76,865&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Shares issued:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;Stock options and share units exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 262&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 338&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 95&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;Issuance of common shares&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 6,900&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"&gt;Acquisitions (Note 3)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 296&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance, end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 84,756&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 84,494&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 84,156&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_Iz3BnJLWW0mUjqzMzVcFLA_3_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84494000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="-3"
      id="Tc_H4Z-FEHzgEmLP3R-_fZnHA_3_4"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84156000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2019_uG_65RiDbkmgzyTBRRPLRA"
      decimals="-3"
      id="Tc_RcZi_A_B8kqaAIXr3p5SVA_3_6"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">76865000</us-gaap:CommonStockSharesOutstanding>
    <dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_pspXwncIPkaiAvEZEtPedA_5_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">262000</dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised>
    <dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc__1z8ZqHqdE6SjtrcAatZRA_5_4"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">338000</dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised>
    <dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_rS0DYV7AAkGK7JsIjJqgyw_5_6"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">95000</dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_YOGwJ8p2y0S7-WmAGsncoQ_6_6"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">6900000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_BusinessAcquisitionAxis_dsgx_VisualComplianceMember_xp5HBVIiB0ibMQfC_1T1jA"
      decimals="-3"
      id="Tc_3e7Ql40pi0uHaHCxPR-GGA_7_6"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">296000</us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_9gFI29CCGku4stjnWMWwug_8_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84756000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc__QIkHnZ4_kqgKbJN2TjwKQ_8_4"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84494000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="-3"
      id="Tc_DCdU2bNNs02PYZS_FIHy9g_8_6"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84156000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-5"
      id="Narr_nZvIl5L3bUq4QLMYuZX-eA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2700000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-5"
      id="Narr_nQNUkvUmRUm9KPaIB5xNvA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6200000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-5"
      id="Narr_tTJhbBIDcUWlgLFPBJYHlg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1500000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_x-5pCzsx9E6wBJN02PCSVg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;16&#160;&#x2013; Earnings Per Share&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The following table sets forth the computation of basic and diluted earnings per share (&#x201c;EPS&#x201d;) (number of shares in thousands):&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Net income for purposes of calculating basic and diluted earnings per share&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 86,282&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 52,100&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 36,997&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Weighted average shares outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 84,591&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 84,360&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 81,659&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Dilutive effect of employee stock options&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 482&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 358&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 318&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Dilutive effect of restricted and performance share units&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,127&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,038&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 890&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Weighted average common and common equivalent shares outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 86,200&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 85,756&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 82,867&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Earnings per share&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1.02&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.62&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.45&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1.00&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.61&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.45&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;For the&#160;years ended January&#160;31, 2022, 2021 and 2020, the application of the treasury stock method excluded 267,236, 1,750 and 350,464 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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;For the&#160;years ended January&#160;31, 2022, 2021 and 2020, 1,000, 71,161 and 5,909 stock 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.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Additionally, for the&#160;years ended January&#160;31, 2022, 2021 and 2020, the application of the treasury stock method excluded PSUs and RSUs of nil, 43,002 and nil, 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;/p&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_JbJSs9sbGka2r9A0Yiw9Fw">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Net income for purposes of calculating basic and diluted earnings per share&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 86,282&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 52,100&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 36,997&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Weighted average shares outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 84,591&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 84,360&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 81,659&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Dilutive effect of employee stock options&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 482&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 358&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 318&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Dilutive effect of restricted and performance share units&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,127&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,038&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 890&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Weighted average common and common equivalent shares outstanding&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 86,200&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 85,756&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 82,867&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Earnings per share&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Basic&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1.02&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.62&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.45&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1.00&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.61&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.45&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_7rc78JxtXU682gheBxJOvQ_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">86282000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_LCCWU-1p9kCnjPkMrne9Tg_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">52100000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_h5w2ttQKYUew5z9w-p8ONg_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">36997000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_sMri2WW9P0-cgKl95rbmfg_5_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84591000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_BHHIXq2d5kma3I86NqF5iA_5_4"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">84360000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_sFx6Sc0S5EGzkhHS5-DDfw_5_6"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">81659000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_Rx-wCnJKykygtt1B_UXkwA_6_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">482000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_z9-dPHHAL0yXby9JePBTow_6_4"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">358000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_RXmlpv6fakyO-2LLpgexsw_6_6"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">318000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      decimals="-3"
      id="Tc_Fx0NI0WDPUCqX47-P0ZbsQ_7_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">1127000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_CJG2wdGE-UWUMxrjAtlXlw"
      decimals="-3"
      id="Tc_nDCtKGdu2Uil2O4gL2GmsQ_7_4"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">1038000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QNRGEZqKbk2H-xJ1qEeenA"
      decimals="-3"
      id="Tc_tYUijZPtE0SMG_PSWSB3ew_7_6"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">890000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_AJJ0na0omEaFMy0D50L6qw_8_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">86200000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_7ySNuzBKaUGiXdemRDzF3A_8_4"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">85756000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_bZ5JJnTZFkOMa0X6hH48hg_8_6"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">82867000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Tc_d77utRe37kuBY5csbzAjeA_10_2"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">1.02</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Tc_fIqe8qEyfE-9hogrst1b1Q_10_4"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.62</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="2"
      id="Tc_H_56CEGpoECJliDQkeQ6jQ_10_6"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.45</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Tc_hB6pIMV5b06OZSdSDouOgw_11_2"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">1.00</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Tc_UIW3vvApGE-x8DjkcDhAcw_11_4"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.61</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="2"
      id="Tc_UAOYWU8MYUu89RUvvXxk4w_11_6"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">0.45</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_r5pSsa_cYkCG0A19zqkGbw"
      decimals="0"
      id="Narr_Rt8UvVEYZ0mPwICFxxkDKQ"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">267236</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_0qfldzUGnUa8D6oNioLzVQ"
      decimals="0"
      id="Narr_HWrlO8tZXU-L5w9MHWMaZw"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">1750</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_cWPjPg4LDkWEaFxKq7xJYA"
      decimals="0"
      id="Narr_X3cpqEZdMkyY_EbHdXcomQ"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">350464</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_N5hco1tb6U67Swm5ryMSmg"
      decimals="0"
      id="Narr_tR4N8MKg40aQ7JUAsvGEzg"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">1000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_iiKzX0DmCE6auk_0Kl21Pw"
      decimals="0"
      id="Narr_47yRs7QA3kqtahDCo0kHCg"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">71161</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_Nb9EtL9nKkukH1rnMIiTrw"
      decimals="0"
      id="Narr_5_1X0FAhrEW5OkzfZpMR7A"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">5909</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_z7zilvJfkEWdP1QukbdUoQ"
      decimals="INF"
      id="Narr_LF84V1lVHUmQ5eUK_i2EMg"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_wEcqw4uO2keH-5OKP18XBQ"
      decimals="0"
      id="Narr_kz3KeFADh0iyYkr3qBRaSA"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">43002</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_0kw2A8eK6EG7Hy2gjU7AnA"
      decimals="INF"
      id="Narr_vOrOfzh4KEGg6yxwUrU2Qg"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_p8abu6eDbkynmCkdLPZdcw">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;17&#160;&#x2013; Stock-Based Compensation Plans&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Total estimated stock-based compensation expense recognized in our consolidated statement of operations was as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Cost of revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 732&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 319&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 220&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Sales and marketing&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3,060&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 896&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 706&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Research and development&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,419&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 404&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 281&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;General and administrative&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 5,806&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,694&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,702&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Effect on net income&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 11,017&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,313&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,909&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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 $0.7 million ($0.7 million at January&#160;31, 2021) recognized in the United States. The tax benefit realized in connection with stock options exercised during 2022, 2021 and 2020 was $0.1 million, nominal and $0.1 million, respectively.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Stock Options&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;As of January&#160;31, 2022, we had 1,319,279 stock options granted and outstanding under our shareholder-approved stock option plan and 3,041,719 remained available for grant.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;As of January&#160;31, 2022, $6.1 million of total unrecognized compensation costs, net of forfeitures, related to non-vested stock option awards is expected to be recognized over a weighted average period of 2.6&#160;years. The total fair value of stock options vested during 2022 was $3.4 million.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The total number of options granted during the&#160;years ended January&#160;31, 2022, 2021 and 2020 was 271,025, 381,859 and 367,173, respectively. The weighted average grant-date fair value of options granted during the&#160;years ended January&#160;31, 2022, 2021 and 2020 was $16.77, $10.19 and $8.99 per option, respectively.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The weighted-average assumptions were as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Expected dividend yield (%)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Expected volatility (%)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 27.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 23.5&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Risk-free rate (%)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 0.7&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.4&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Expected option life (years)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;A summary of option activity under all of our plans is presented as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:50.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.85%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:1.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.85%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.73%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Number of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;(in&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Life (years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,127,822&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26.82&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 20.2&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 381,859&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 41.51&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (338,342)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18.43&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (23,619)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33.88&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,147,720&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33.77&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 28.1&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 271,025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 65.03&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (90,166)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 29.38&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (9,300)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 53.94&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,319,279&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 42.35&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 41.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Vested or expected to vest at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,319,279&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 42.35&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 41.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;Exercisable at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 856,426&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 36.91&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 31.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The total intrinsic value of options exercised during the&#160;years ended January&#160;31, 2022, 2021 and 2020 was approximately $3.7 million, $10.8 million and $2.0 million, respectively.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Options outstanding and options exercisable as at January&#160;31, 2022 by range of exercise price are as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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:44.37%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.21%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.21%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.2%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:31.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Options Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:19.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Options Exercisable&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Weighted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';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:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Weighted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Average&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Weighted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';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:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Average&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Number of&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Remaining&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Average&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Number of&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Exercise&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Stock&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Contractual&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Exercise&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Stock&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Range of Exercise Prices&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Price&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Life (years)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Price&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;$19.78 &#x2013; $23.86&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 22.55&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 176,500&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 22.55&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 176,500&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;$27.39 &#x2013; $29.08&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 29.08&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 191,754&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 29.08&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 176,417&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;$40.22 &#x2013; $52.38&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 40.69&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 618,325&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 40.60&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 414,713&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;$56.63 &#x2013; $78.55&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 63.59&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 332,700&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 63.79&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 88,796&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 42.35&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,319,279&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 36.91&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 856,426&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;A summary of the status of our unvested stock options under our shareholder-approved stock option plan as of January&#160;31, 2022 is presented as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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:66.45%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.35%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13.62%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Weighted-&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Number&#160;of&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Grant-Date&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Stock&#160;Options&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Fair&#160;Value&#160;per&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Share&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;409,653&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;8.03&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 381,859&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10.19&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Vested&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (266,238)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8.19&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (23,619)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4.87&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 501,655&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9.52&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 271,025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 16.77&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Vested&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (300,527)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 11.42&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (9,300)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 13.54&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 462,853&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 13.16&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Performance Share Units&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;A summary of PSU activity is as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:1.2%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:1.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Weighted-&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.48%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Aggregate&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Granted&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;PSUs&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;(in&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;629,874&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;21.19&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;5.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;28.2&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;85,334&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;54.24&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Performance units issued&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;40,665&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;29.08&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;755,873&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;25.17&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;4.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;44.0&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 77,441&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 88.11&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Performance units issued&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 44,296&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 36.63&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (100,072)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 9.66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 777,538&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 35.76&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 57.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Vested or expected to vest at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 777,538&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 35.76&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 57.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Exercisable at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 561,034&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 23.15&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 41.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January&#160;31, 2022) that would have been received by PSU holders if all PSUs had been vested on January&#160;31, 2022.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;As of January&#160;31, 2022, $6.7 million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of 1.1&#160;years. The total fair value of PSUs vested during 2022 was $3.6 million.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Restricted Share Units&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;A summary of RSU activity is as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Weighted-&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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:1.37%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.1%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Average&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Average&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Number&#160;of&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Granted&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Remaining&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Date&#160;Fair&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Contractual&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;(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.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 374,677&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 16.57&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 16.8&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 57,518&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 43.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 432,195&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19.98&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 25.2&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 50,099&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 65.33&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (71,314)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 7.14&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 410,980&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 29.17&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 30.3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Vested or expected to vest at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 410,980&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 29.17&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 30.3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Exercisable at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 355,765&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 24.62&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 26.3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January&#160;31, 2022) that would have been received by RSU holders if all RSUs had been vested on January&#160;31, 2022.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;As of January&#160;31, 2022, $3.2 million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of 1.6&#160;years. The total fair value of RSUs vested during 2022 was $2.6 million.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Deferred Share Unit Plan&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;As at January&#160;31, 2022, the total number of DSUs held by participating directors was 252,011 (226,525 at January&#160;31, 2021), representing an aggregate accrued liability of $18.3 million ($13.8 million at January&#160;31, 2021). During 2022, 25,486 DSUs were granted and nil DSUs were redeemed and settled in cash. As at January&#160;31, 2022, the unrecognized aggregate liability for the unvested DSUs was nil (nil at January&#160;31, 2021). 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 in our consolidated statements of operations was approximately $4.5 million, $4.6 million and $5.0 million for the&#160;years ended January&#160;31, 2022, 2021 and 2020, respectively.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Cash-Settled Restricted Share Unit Plan&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;A summary of activity under our CRSU plan is as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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:68.03%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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:13.15%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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:13.15%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Weighted-&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Average&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Number&#160;of&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Remaining&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;CRSUs&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Contractual&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 42,727&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.6&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26,629&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Vested and settled in cash&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (30,480)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (248)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 38,628&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.5&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,776&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Vested and settled in cash&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (26,755)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (221)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 24,428&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Non-vested at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 24,428&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&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 $0.8 million at January&#160;31, 2022 ($0.9 million at January&#160;31, 2021). As at January&#160;31, 2022, the unrecognized aggregate liability for the unvested CRSUs was $1.0 million ($1.5 million at January&#160;31, 2021). 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 in our consolidated statements of operations was approximately $1.3 million, $1.1 million and $0.9 million for the&#160;years ended January&#160;31, 2022, 2021 and 2020, respectively.&lt;/p&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_JV6peuVJDkqOtwgxcGi7wQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Cost of revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 732&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 319&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 220&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Sales and marketing&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3,060&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 896&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 706&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Research and development&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,419&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 404&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 281&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;General and administrative&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 5,806&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,694&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,702&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Effect on net income&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 11,017&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,313&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,909&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_8l1N7K4Xc02vvyAvHjaasQ"
      decimals="-3"
      id="Tc_fpARSVMM7EG-nGAeAr0cxg_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">732000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_jsHHy_PqpkiirASYpxSruQ"
      decimals="-3"
      id="Tc_Fjhte5AhjkCMp_0KEaGtnw_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">319000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_ru_9FcT6ikaFMxDHrrMd5Q"
      decimals="-3"
      id="Tc_6NKGYnT_9EiwDnjFlwziZg_3_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">220000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_HykPW4NlGEivd_SePNDWQA"
      decimals="-3"
      id="Tc_A8dZToeDfUOL8vfZol95ig_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3060000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_3bFzRfjWLkqA2oYYNELPFQ"
      decimals="-3"
      id="Tc_h06Wv34RlkC6790bWrahzQ_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">896000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_PDYPg1dAqE2gEl9iicLP8Q"
      decimals="-3"
      id="Tc_LNO1MfEuv0G_d9sbzmfcCA_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">706000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_p-sYBbEvvUCRaew36CFgkA"
      decimals="-3"
      id="Tc_v_GOK3TWZEqtDF1nyxphHQ_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1419000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_3MfANjnYcECPQTJiRahhhg"
      decimals="-3"
      id="Tc_ih3RZNPhWk-rV1AXS80Fhw_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">404000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_QcE0I4cJ5k2iVg_82e4xEg"
      decimals="-3"
      id="Tc_8TZH_Y2vuEqpj_YhDh6SiA_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">281000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_fDOL7lqI6U-y6cUkIlDJ-g"
      decimals="-3"
      id="Tc_3k0KRJJIb0ufP57v8IEz5Q_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5806000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_GmlB_N6orEO4bj1gBhlFpQ"
      decimals="-3"
      id="Tc_-vYXmWILt0qClBWPWmoe3g_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4694000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_J1LSEqJWtUeeWzLBwEGttA"
      decimals="-3"
      id="Tc_Vil_mnWS60O1CrkpHvO72A_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3702000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_5_52FoFFaEWe51ccQP074A_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11017000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_Nt_plcvNt02QukCUBPYgnA_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6313000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_0Mtl8jVecEaWrYKubrHxJQ_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4909000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_TCrvbIirbkuQZrTdZInhzA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">700000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-5"
      id="Narr_THqY45QzD0SJdSE04DNrQA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">700000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-5"
      id="Narr_eo-7tqtGMEWCEYVNsqlv1Q"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">100000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-5"
      id="Narr_elwWAdd6PEqesekEzRU7ug"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">100000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_tuTAz0XA_Ei-QJeWb1ffHQ"
      decimals="INF"
      id="Narr_w10epW3dEEC0Hi4Q1puSFQ"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">1319279</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_WoGVhn8RbEqNIS2XfMymGw"
      decimals="INF"
      id="Narr_LCUiWJB_bUC2iVrh2OjqBg"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">3041719</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_8o6KsHXFCUGApF_yinehww"
      decimals="-5"
      id="Narr_aEQ_gBZiPkSw2UAC3vdrYQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_T35Ce-ftVkCfzd2IVx2x1w"
      id="Narr_oQmQ3t8FIkumii5BhkZsPg">P2Y7M6D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_T35Ce-ftVkCfzd2IVx2x1w"
      decimals="-5"
      id="Narr_OoT9hAGZw0qzIquxtKEDOA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3400000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="INF"
      id="Narr_4Fk8LziCrUC_X_z3q4JEXA"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">271025</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="INF"
      id="Narr_-MRTWj5xi02aK3iaDjDQbQ"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">381859</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="INF"
      id="Narr_ojBOznhZf0qrfRNbQpl34A"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">367173</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Narr_m9aH5mw1K0eVIVftvJEByA"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">16.77</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Narr_8XatQu388E-mzgz5hkGZVQ"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">10.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="2"
      id="Narr_CXohN6FwvUSZk7qt6Xqv1Q"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">8.99</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_BZvEESrpv0m9iT2yyre6BA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Expected dividend yield (%)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Expected volatility (%)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 27.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26.4&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 23.5&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Risk-free rate (%)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 0.7&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 0.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.4&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Expected option life (years)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="3"
      id="Tc_PccA6Ae8B0moyT4TbicZ0w_4_2"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.278</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="3"
      id="Tc_1CQKAGdQekqXxTnJf-JDEA_4_4"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.264</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="3"
      id="Tc_ogAGsGXveU2wRdPboHxtIg_4_6"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.235</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="3"
      id="Tc_9W9JHGO8vE6Nbau9L5AS1g_5_2"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.007</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="3"
      id="Tc_FRAmLa9pFk-ea6vA-lyncA_5_4"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.007</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="3"
      id="Tc_yFRFjdTEnECn7YvO0mmYZw_5_6"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.014</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_fjujXW5s40mRMBHjChqqIQ_6_2">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      id="Tc_P2Gukg-Yx06vAMkK01Zp9g_6_4">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      id="Tc_XXNvuTdg2kChqN3QObGVlA_6_6">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_FZ0h-snVKkipJ3-Xc7tFEA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:50.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.18%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.85%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:1.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.85%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.73%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Number of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;(in&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Life (years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,127,822&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26.82&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4.6&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 20.2&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 381,859&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 41.51&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (338,342)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18.43&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (23,619)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33.88&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,147,720&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33.77&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 28.1&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 271,025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 65.03&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (90,166)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 29.38&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (9,300)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 53.94&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,319,279&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 42.35&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 41.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Vested or expected to vest at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,319,279&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 42.35&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 41.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:50.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:50.18%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:11pt;"&gt;Exercisable at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 856,426&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 36.91&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 31.6&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_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="INF"
      id="Tc_I5ERD6qa50eJOlpfkijkxg_6_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">1127822</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="2"
      id="Tc_rCZdZ8qCmUu60S7_1eTpcg_6_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">26.82</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      id="Tc_vGMyf4V_e0-dtyQPQgQx7Q_6_7">P4Y7M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="-5"
      id="Tc_g2rN14flkk6cIydWeGHOBQ_6_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">20200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="INF"
      id="Tc_mX5IcFuf9k68JFaoixGXbQ_7_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">381859</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Tc_-ecYgPDk7UiI168bsjwPlA_7_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">41.51</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="INF"
      id="Tc_4IlP531SVUW1HV4Yq3kDGQ_8_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">338342</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Tc_A43OfhezVUCylutWW1hI2g_8_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">18.43</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="INF"
      id="Tc_HM1tOWZ4X0-N6swuFlbxbw_9_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">23619</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Tc_27hHWIS4nUOgXV0qIN1Y7Q_9_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">33.88</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="INF"
      id="Tc_f4m7V8vWWUeaSqG1tbK8bQ_10_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">1147720</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="2"
      id="Tc_KwP4uhFZNkigog2AaaHB_A_10_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">33.77</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      id="Tc_i5V9UjYraki_m_PaSeH-XQ_10_7">P4Y10M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-5"
      id="Tc_OVrpn1a6x0aSwttlR1NFZg_10_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">28100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="INF"
      id="Tc_1wIt69h43EaSkL177hMrmg_11_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">271025</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Tc_LwnjSrzHz0GJPU7r6aBiqA_11_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">65.03</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="INF"
      id="Tc_-_3FOo1b_k-SEmHfvu6_hw_12_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">90166</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Tc_1n_AFr4yE0C_sxe3up9pEA_12_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">29.38</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="INF"
      id="Tc_rhlV-hifXUiH5g8HxYV3pw_13_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">9300</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Tc_4NInMg4y30SCWfFc_3jXpA_13_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">53.94</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="INF"
      id="Tc_S-Z0A_zeiU27ejEG-osngA_14_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">1319279</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="2"
      id="Tc_F6BYOGYfP0CRv_pdCScKgw_14_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">42.35</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_bpaz68_kcUWSwPeSEDlGlA_14_7">P4Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Tc_Y6TXM383W0e10_hMFSQUmQ_14_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">41500000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="INF"
      id="Tc_M_1X0YuG5UmZkhYEZZzDag_16_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">1319279</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="2"
      id="Tc_JuyA7rBAyUy3q8JmbjkZ_A_16_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">42.35</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_hpwRX_sr5Ua07tq_rhtIZw_16_7">P4Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Tc_o6d7m_BLek-LsxvCDWo7Qw_16_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">41500000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="INF"
      id="Tc_vVC7ez5TO0WDu1C-Se9Fwg_18_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">856426</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="2"
      id="Tc_GfUw_YtxzkSfo1WO2hpryw_18_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">36.91</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_pKXaiZZQ_kWlj7559JfEIw_18_7">P3Y10M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Tc_mgjXfxyq5UWd7Ps_3OprBA_18_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">31600000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-5"
      id="Narr_-toHeshRMEivVCrTWZ7W3w"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3700000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-5"
      id="Narr_YAYkOUsKzkyp4ds0nOw5Qw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10800000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-5"
      id="Narr_8ELqgE36c0GIcXvp3A6Fyw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2000000.0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_XzUwlOeMXU-8O7r9-ntq9A">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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:44.37%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.21%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.21%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.2%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:31.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Options Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:19.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Options Exercisable&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Weighted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';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:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Weighted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Average&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Weighted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Calibri','Helvetica','sans-serif';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:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Average&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Number of&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Remaining&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Average&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Number of&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Exercise&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Stock&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Contractual&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Exercise&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Stock&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Range of Exercise Prices&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Price&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Life (years)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Price&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;$19.78 &#x2013; $23.86&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 22.55&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 176,500&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.9&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 22.55&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 176,500&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;$27.39 &#x2013; $29.08&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 29.08&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 191,754&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3.2&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 29.08&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 176,417&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;$40.22 &#x2013; $52.38&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 40.69&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 618,325&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 40.60&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 414,713&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;$56.63 &#x2013; $78.55&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 63.59&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 332,700&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6.1&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 63.79&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 88,796&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:44.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 42.35&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,319,279&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 36.91&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 856,426&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_oFYYcwzT2kSngLEWBsY2Tg"
      decimals="2"
      id="Narr_u093hxf2EUyRbTT5EWdTMw"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">19.78</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_oFYYcwzT2kSngLEWBsY2Tg"
      decimals="2"
      id="Narr_mn5IPAuvA0CFT_CZqA26zA"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">23.86</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_XxmAIop8xU2fPHBgO1IozQ"
      decimals="2"
      id="Tc_ReeJ3EY6jESkzQkGkpJWLg_7_3"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">22.55</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_XxmAIop8xU2fPHBgO1IozQ"
      decimals="INF"
      id="Tc_MxZQ31-iZ0Sik_ol5vbNwg_7_5"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">176500</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_oFYYcwzT2kSngLEWBsY2Tg"
      id="Tc_yf4N01GZQkSQetLo6UNJ7Q_7_7">P1Y10M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_XxmAIop8xU2fPHBgO1IozQ"
      decimals="2"
      id="Tc_gztRlJHf0k-q7R0j2RwD-Q_7_10"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">22.55</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range1Member_XxmAIop8xU2fPHBgO1IozQ"
      decimals="INF"
      id="Tc_DMlj74wFpUWOnxmtoktSVg_7_12"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">176500</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_miym7Y2tQ0CWkuJKTYz8rg"
      decimals="2"
      id="Narr_5ujnCV6E3k-Hm8Bby7aGZg"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">27.39</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_miym7Y2tQ0CWkuJKTYz8rg"
      decimals="2"
      id="Narr_aV9tf6D8vkKgsNampK4bfw"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">29.08</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_XCTgfzC54kK5U5TRd9kmYg"
      decimals="2"
      id="Tc_NVSJ6EYzVU-yGNYDKBnYwg_8_3"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">29.08</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_XCTgfzC54kK5U5TRd9kmYg"
      decimals="INF"
      id="Tc_LEi8AJV8FE6jZsss19A6Gg_8_5"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">191754</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_miym7Y2tQ0CWkuJKTYz8rg"
      id="Tc_1axZnGMVtk-HG_8YpTgqaQ_8_7">P3Y2M12D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_XCTgfzC54kK5U5TRd9kmYg"
      decimals="2"
      id="Tc_ICMOjhYRzEyMjZm4lILWdg_8_10"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">29.08</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range2Member_XCTgfzC54kK5U5TRd9kmYg"
      decimals="INF"
      id="Tc_zOXVtD5JVkSMe3DkYNORwg_8_12"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">176417</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_ayc5YaAvckuqG75CHoUJVg"
      decimals="2"
      id="Narr_H87EA4aPsUeGxo5SvzFcGQ"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">40.22</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_ayc5YaAvckuqG75CHoUJVg"
      decimals="2"
      id="Narr_tUX1CwgElUClwU77Spncag"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">52.38</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_XNpUYrc4XEOgkXEq-NIbpw"
      decimals="2"
      id="Tc_COYsddGRkUaqAAfAyWgXHw_9_3"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">40.69</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_XNpUYrc4XEOgkXEq-NIbpw"
      decimals="INF"
      id="Tc_ybeAqsjnQkGMz6cZrPW8Og_9_5"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">618325</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_ayc5YaAvckuqG75CHoUJVg"
      id="Tc_gvnKA84sPUegV6T8-_Lvnw_9_7">P4Y8M12D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_XNpUYrc4XEOgkXEq-NIbpw"
      decimals="2"
      id="Tc_JVI0kIgZlkiOgURXtpSvAg_9_10"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">40.60</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range3Member_XNpUYrc4XEOgkXEq-NIbpw"
      decimals="INF"
      id="Tc_Zyy7LcU7qUmNrXRrqW5O5Q_9_12"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">414713</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_KecCz_vCi0WIyzWw686IMA"
      decimals="2"
      id="Narr_FZvoAT8yUUqsKnA9QIo5Aw"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">56.63</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_KecCz_vCi0WIyzWw686IMA"
      decimals="2"
      id="Narr_gKag7Zo7r0ySfj7zbotMHg"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">78.55</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_Pk50zSWNUUqLi05xTSwP2g"
      decimals="2"
      id="Tc_3iQg8pzGnE2wpQ4bGQaZzg_10_3"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">63.59</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_Pk50zSWNUUqLi05xTSwP2g"
      decimals="INF"
      id="Tc_vFT8e2mBo0Gqj47uS2lsJw_10_5"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">332700</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_KecCz_vCi0WIyzWw686IMA"
      id="Tc_QaJMwgokVUGORL5zZ8KGXg_10_7">P6Y1M6D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_Pk50zSWNUUqLi05xTSwP2g"
      decimals="2"
      id="Tc_tRAmqsGuhE-snMYFLy8uHw_10_10"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">63.79</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions
      contextRef="As_Of_1_31_2022_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis_dsgx_Range4Member_Pk50zSWNUUqLi05xTSwP2g"
      decimals="INF"
      id="Tc_5_qYWh6ZVESUsUGzp_cOJw_10_12"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">88796</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="2"
      id="Tc_fjIjgkKX3EmcfLBOJUPREw_11_3"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">42.35</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="INF"
      id="Tc_o7KSf7anZUqoH69Wqxn9cw_11_5"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">1319279</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_iDRUluxiXUSsl0HAizLfyg_11_7">P4Y4M24D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
    <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="2"
      id="Tc_oc7PZ3gDdECz7yVN4-7waQ_11_10"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">36.91</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1>
    <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="INF"
      id="Tc_qS_z3ly--UCDksafFzIBDQ_11_12"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">856426</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions>
    <us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_IC_IjjCPCUyQXLuuzPBrsw">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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:66.45%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.35%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13.62%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Weighted-&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Number&#160;of&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Grant-Date&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Stock&#160;Options&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Fair&#160;Value&#160;per&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Share&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;409,653&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;8.03&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 381,859&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 10.19&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Vested&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (266,238)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8.19&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (23,619)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4.87&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 501,655&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9.52&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 271,025&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 16.77&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Vested&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (300,527)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 11.42&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (9,300)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 13.54&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:66.45%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 462,853&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 13.16&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="As_Of_1_31_2020_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_SPCBDNsT8km6uDuZauvpng"
      decimals="INF"
      id="Tc_EKH7rFKjTkaFjrrGx1n6Kg_6_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">409653</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2020_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_SPCBDNsT8km6uDuZauvpng"
      decimals="2"
      id="Tc_2SwaD9VnaEu7KqKsFJTm5g_6_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">8.03</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA"
      decimals="INF"
      id="Tc_KKTfIfW77UCH_o7xlHEXBA_7_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">381859</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA"
      decimals="2"
      id="Tc_pkRo4oHva02wmoiTtjiXFQ_7_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">10.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA"
      decimals="INF"
      id="Tc_szgMUuzr10KgyW23TWvBiw_8_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">266238</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA"
      decimals="2"
      id="Tc_Izu_HP372EyxTctHAIneBw_8_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">8.19</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA"
      decimals="INF"
      id="Tc_MQwmfMqmSkym40FcDSauLg_9_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">23619</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_kAz2GWrkk02_ckcCSaozvA"
      decimals="2"
      id="Tc_q6LhphykSUKljcv41mSNiQ_9_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">4.87</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_G9RPCEo4IUG05bsTdddmIQ"
      decimals="INF"
      id="Tc_ueAQ7Bp9WE-Bm-QkyWcXUw_10_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">501655</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_G9RPCEo4IUG05bsTdddmIQ"
      decimals="2"
      id="Tc_GpJoYDWJf0yS8GBejUdBiA_10_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">9.52</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw"
      decimals="INF"
      id="Tc_aOqnYlBBOkG0VDZykgdknA_11_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">271025</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw"
      decimals="2"
      id="Tc_BSJElZYSj0uzICNkIaknaw_11_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">16.77</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw"
      decimals="INF"
      id="Tc_HNlD7ESIlky2ZkA5hsPkaw_12_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">300527</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw"
      decimals="2"
      id="Tc_nWudGCKoxk2IX4H6KE5ABg_12_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">11.42</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw"
      decimals="INF"
      id="Tc_5--qutaMW0uipv0IYpLeAQ_13_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">9300</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw"
      decimals="2"
      id="Tc_v5uku53Y402x_mK_piWFSQ_13_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">13.54</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_tuTAz0XA_Ei-QJeWb1ffHQ"
      decimals="INF"
      id="Tc_xoADNevx8ky0v231YCKRxg_14_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">462853</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_tuTAz0XA_Ei-QJeWb1ffHQ"
      decimals="2"
      id="Tc_xVsjCHenw0SEVuF0mYr8AQ_14_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">13.16</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_yliwHBRqZkqgUlHWUlo7iA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:1.2%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:1.24%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Weighted-&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.48%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Aggregate&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Granted&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;PSUs&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;(in&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&#160;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;629,874&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;21.19&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;5.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;28.2&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;85,334&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;54.24&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Performance units issued&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;40,665&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;29.08&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;755,873&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;25.17&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;4.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;44.0&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 77,441&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 88.11&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Performance units issued&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 44,296&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 36.63&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (100,072)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 9.66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 777,538&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 35.76&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 57.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Vested or expected to vest at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 777,538&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 35.76&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.8&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 57.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:48.52%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:48.52%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Exercisable at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.46%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 561,034&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 23.15&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 41.4&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_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_xNK5CW1PfUKZ-5-p4RhSTQ"
      decimals="INF"
      id="Tc_98Qpz60zvkqlVOZlbvznPA_6_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">629874</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_xNK5CW1PfUKZ-5-p4RhSTQ"
      decimals="2"
      id="Tc_LDreJn7ngk-N4LFl9fp8dw_6_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">21.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_SwfVQ3NBHk6mbktgTezcWg"
      id="Tc_RztXIDx-XE2eEkX4thE_rA_6_7">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_xNK5CW1PfUKZ-5-p4RhSTQ"
      decimals="-5"
      id="Tc_rJwc9uTfQ0KYv4Mkw8S4Jw_6_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">28200000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw"
      decimals="INF"
      id="Tc_-RIm16oWLUieDnpmkSpPIw_7_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">85334</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw"
      decimals="2"
      id="Tc_DtHShcwxg0O67w-Vvao4Mg_7_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">54.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw"
      decimals="INF"
      id="Tc_IaVxUsPa-EWS8JASXIvk_g_8_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">40665</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw"
      decimals="2"
      id="Tc_bYbDEOo6LUqHeDu1DpGqUw_8_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">29.08</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_a6zlxirXhk6lj0r53h1eGQ"
      decimals="INF"
      id="Tc_snQx3FGjJECL6t9umTnvWQ_9_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">755873</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_a6zlxirXhk6lj0r53h1eGQ"
      decimals="2"
      id="Tc_fRfMClA5i0mt_Ncj1i9tDQ_9_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">25.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_gglz5AFks0-mCSb27WLbqw"
      id="Tc_FtrnJ_6s_kKw-KQrrfTYzQ_9_7">P4Y8M12D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_a6zlxirXhk6lj0r53h1eGQ"
      decimals="-5"
      id="Tc_ImETI1aEjkS0zpbqK3C3lA_9_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">44000000.0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      decimals="INF"
      id="Tc_JzSUJP-SwES4hhGyUGIn_w_10_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">77441</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      decimals="2"
      id="Tc_adV5B-XPfkuOOrJcZByFXQ_10_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">88.11</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      decimals="INF"
      id="Tc_9sp6lhuNv0iN-d2A0WbMQQ_11_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">44296</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      decimals="2"
      id="Tc_lJjtA5zIS0ig3GDBeoFyOA_11_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">36.63</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      decimals="INF"
      id="Tc_TL86ON6PyESxlF4sBamCTg_12_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">100072</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      decimals="2"
      id="Tc_ZelRTRZ8LE6Po6_CT6WwAw_12_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">9.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg"
      decimals="INF"
      id="Tc_gp_sG8hYfkGNQz4Z91zE6A_13_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">777538</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg"
      decimals="2"
      id="Tc_nkgROofxBEaOHzc7LF9NgA_13_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">35.76</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      id="Tc_YPzsi6MWCEyqsEI1207wdg_13_7">P4Y9M18D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg"
      decimals="-5"
      id="Tc_xjMo5_LTWEmOWq59Sw7G0w_13_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">57400000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg"
      decimals="INF"
      id="Tc_57POzMFvUU-tDSoQJBeCAQ_15_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">777538</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg"
      decimals="2"
      id="Tc_35CsmyE7GE2CzJqrQXth4A_15_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">35.76</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      id="Tc_PPu2V0GjJkqBuzk6iyK4HA_15_7">P4Y9M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg"
      decimals="-5"
      id="Tc_A0QgA6l9YkCNdbQo43Y2Rw_15_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">57400000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg"
      decimals="INF"
      id="Tc_UjhGRsuNEU6115obK4XM2Q_17_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">561034</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg"
      decimals="2"
      id="Tc_DSMq5PMnEEG20nYtMbJq2A_17_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">23.15</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      id="Tc_dBA11n23YUu2B2NuSp_T5A_17_7">P3Y7M6D</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg"
      decimals="-5"
      id="Tc_3kvYKJGYJEW84zY1PVlWpw_17_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">41400000</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_0aLkmM4cwESLDqXJ3Fiwzg"
      decimals="-5"
      id="Narr_GHaa23KtmkenggEXJx6kNQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6700000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      id="Narr_EAARlRXaEkCOYMC79m3uxA">P1Y1M6D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og"
      decimals="-5"
      id="Narr_7nm0LQ2gUUKMHnRoCoZwUQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3600000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_RVPw5DKCw0G1_MxOtA0AQA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.98%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.37%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Weighted-&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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:1.37%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.1%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Average&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Average&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Number&#160;of&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Granted&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Remaining&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Date&#160;Fair&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Contractual&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;(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.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 374,677&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 16.57&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5.0&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 16.8&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 57,518&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 43.25&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 432,195&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19.98&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4.7&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;$&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 25.2&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 50,099&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 65.33&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (71,314)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 7.14&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 410,980&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 29.17&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 30.3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Vested or expected to vest at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 410,980&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 29.17&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 30.3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.98%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:47.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Exercisable at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.98%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 355,765&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 24.62&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 26.3&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_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_LTqMLIM6gE2LGZtryjqdiw"
      decimals="0"
      id="Tc_ojptEiFlM0-y6vQ3Env6YA_6_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">374677</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_LTqMLIM6gE2LGZtryjqdiw"
      decimals="2"
      id="Tc_tqGJNjj5OUWhoCvM1UaQvg_6_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">16.57</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QNRGEZqKbk2H-xJ1qEeenA"
      id="Tc_sBZ-KTQ5o0e0EiGr8Yp7cA_6_7">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_LTqMLIM6gE2LGZtryjqdiw"
      decimals="-5"
      id="Tc_tzQsYgC1aku6pd9sSS4tGw_6_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">16800000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_CJG2wdGE-UWUMxrjAtlXlw"
      decimals="0"
      id="Tc_rVIpH8bgFE6PKjbjF5tRoQ_7_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">57518</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_CJG2wdGE-UWUMxrjAtlXlw"
      decimals="2"
      id="Tc_Cy6iwh0u90SdIILTl1pt8w_7_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">43.25</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_0PjYLYex6kWbjrP31EV_zQ"
      decimals="0"
      id="Tc_7vbIQfVUUEidyIfptxHeBg_8_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">432195</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_0PjYLYex6kWbjrP31EV_zQ"
      decimals="2"
      id="Tc_V-dBhELJzkShD4dSY_tF2Q_8_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">19.98</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_CJG2wdGE-UWUMxrjAtlXlw"
      id="Tc_gt14zh3HfE-2yUeV7_AGBw_8_7">P4Y8M12D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_0PjYLYex6kWbjrP31EV_zQ"
      decimals="-5"
      id="Tc_emhyjq57OUCohRFvefMmCA_8_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">25200000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      decimals="0"
      id="Tc_AC-DLaOtSEG1AVpkd5OehQ_9_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">50099</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      decimals="2"
      id="Tc_3WrRPYZODUmBFY15Ugpy_g_9_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">65.33</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      decimals="0"
      id="Tc_Bqp2M5_MBEqd4gE738OtJg_10_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">71314</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      decimals="2"
      id="Tc_UHSvO3Nh3UqrUBYJXcLHeA_10_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">7.14</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA"
      decimals="0"
      id="Tc_0a5XxpGLJ064rnQHCNDURQ_11_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">410980</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA"
      decimals="2"
      id="Tc_LLvEjcpwjU-WdHp-uYzsKw_11_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">29.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      id="Tc_UjRPjusFFEm5gG-cBjz8Zg_11_7">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA"
      decimals="-5"
      id="Tc_Voe4P3ij1k2L6RDiJpy45Q_11_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">30300000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA"
      decimals="0"
      id="Tc_KExsUwkj_kq9VQPNIRsk6A_13_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">410980</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA"
      decimals="2"
      id="Tc_5EsU2tEAbUW0oSdVYMGyRg_13_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">29.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      id="Tc_XAedoh6qT063KRpjw3-LwQ_13_7">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA"
      decimals="-5"
      id="Tc_6rDYb-kI6kK1Orgq7st-RQ_13_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">30300000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA"
      decimals="0"
      id="Tc_iqIFZq33S0mf6ONyu00HQg_15_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">355765</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA"
      decimals="2"
      id="Tc_uWoi9GOCxEOW5ej7kWE7Rg_15_5"
      unitRef="Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw">24.62</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      id="Tc_7L97SrYT7UCETDF6rJYnDw_15_7">P4Y4M24D</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA"
      decimals="-5"
      id="Tc_leLCB1uT4kSpL1tnnPVUBw_15_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">26300000</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_rDrj0FK6SEGuRjxffaILTA"
      decimals="-5"
      id="Narr_0PK_evZMjEWCVJRdxuvaTA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3200000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      id="Narr_zNTJKno44UKl2GckiE-ayA">P1Y7M6D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng"
      decimals="-5"
      id="Narr_8vNB2sCym0Ov_su248o_Ag"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2600000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <dsgx:DeferredShareUnitsOutstandingNumber
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_DW40VpY3vUOYNnDB7B6xUA"
      decimals="0"
      id="Narr_GWcwmF7g7EOigBZyl8amYQ"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">252011</dsgx:DeferredShareUnitsOutstandingNumber>
    <dsgx:DeferredShareUnitsOutstandingNumber
      contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_rnnC8H1lFUaMzqv-faVMZw"
      decimals="0"
      id="Narr_bOuJoh6vgUyuyACirhLhkA"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">226525</dsgx:DeferredShareUnitsOutstandingNumber>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_DW40VpY3vUOYNnDB7B6xUA"
      decimals="-5"
      id="Narr_AVraJXrwC0Cbhg5p60X2Xg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">18300000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_rnnC8H1lFUaMzqv-faVMZw"
      decimals="-5"
      id="Narr_zRB19vQQiU-ZB7z7dn6nxA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">13800000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <dsgx:DeferredShareUnitsGrantsInPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_r1XeBldg10OTWilpIrUQ5A"
      decimals="0"
      id="Narr_boSk1shlAE2DA6tBhPUGOQ"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">25486</dsgx:DeferredShareUnitsGrantsInPeriod>
    <dsgx:DeferredShareUnitsRedeemedAndSettledInCash
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_r1XeBldg10OTWilpIrUQ5A"
      decimals="INF"
      id="Narr_fdAyvVh2Tk-6p3nZzQnRXQ"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">0</dsgx:DeferredShareUnitsRedeemedAndSettledInCash>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_DW40VpY3vUOYNnDB7B6xUA"
      decimals="-5"
      id="Narr_Jlp3rz3HH02135OEzTBcNQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_rnnC8H1lFUaMzqv-faVMZw"
      decimals="-5"
      id="Narr_Pfbff9bFbUCvphMwPJZPUg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <dsgx:DeferredShareUnitsCompensationExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_r1XeBldg10OTWilpIrUQ5A"
      decimals="-5"
      id="Narr_UYjanJvI7Eqx1GOGlPVLsw"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4500000</dsgx:DeferredShareUnitsCompensationExpense>
    <dsgx:DeferredShareUnitsCompensationExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_ayZ85oCYrkqVqWmMqqiP9g"
      decimals="-5"
      id="Narr_ELwBgqmKKUCynoi_Ze6KFQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4600000</dsgx:DeferredShareUnitsCompensationExpense>
    <dsgx:DeferredShareUnitsCompensationExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_8PMORFsxEEKKw8OpaNUE7g"
      decimals="-5"
      id="Narr_RcWKwxA-dkScJvvjlt6VwQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5000000.0</dsgx:DeferredShareUnitsCompensationExpense>
    <dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_nEi1tgWi20OJ_cHZKUm3UA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;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:68.03%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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.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:'Arial','Helvetica','sans-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:13.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:'Arial','Helvetica','sans-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:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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:13.15%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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:13.15%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Weighted-&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Average&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Number&#160;of&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Remaining&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;CRSUs&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Contractual&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 42,727&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.6&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26,629&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Vested and settled in cash&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (30,480)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (248)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 38,628&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1.5&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Granted&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,776&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Vested and settled in cash&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (26,755)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Forfeited&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (221)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 24,428&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:68.03%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:68.03%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Non-vested at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 24,428&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock>
    <dsgx:CRSUAwardsOutstandingNumber
      contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="0"
      id="Tc_1RI8Vef3VEKiVvTl-VhytA_6_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">42727</dsgx:CRSUAwardsOutstandingNumber>
    <dsgx:CRSUAwardsWeightedAverageContractualLife
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      id="Tc_pc2f9cFA1k25BGZlPpSO-A_6_4">P1Y7M6D</dsgx:CRSUAwardsWeightedAverageContractualLife>
    <dsgx:CRSUAwardsGrantsInPeriod
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="0"
      id="Tc_iS3mUks7-U-Pnn5FrQbiGg_7_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">26629</dsgx:CRSUAwardsGrantsInPeriod>
    <dsgx:CRSUAwardsVestedAndSettledInCash
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="0"
      id="Tc_Yn3a6oS-R0Get11es4dTxQ_8_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">30480</dsgx:CRSUAwardsVestedAndSettledInCash>
    <dsgx:CRSUAwardsForfeitedInPeriod
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="0"
      id="Tc_lEbrwNrJ5kiOm55fZN4Yhg_9_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">248</dsgx:CRSUAwardsForfeitedInPeriod>
    <dsgx:CRSUAwardsOutstandingNumber
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="0"
      id="Tc_HdOyMgTivU2LS-7ODA1dtg_10_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">38628</dsgx:CRSUAwardsOutstandingNumber>
    <dsgx:CRSUAwardsWeightedAverageContractualLife
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      id="Tc_TBkbQoEbW0Wv2_QRfIoIHA_10_4">P1Y6M</dsgx:CRSUAwardsWeightedAverageContractualLife>
    <dsgx:CRSUAwardsGrantsInPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="0"
      id="Tc__sseG1mNBES6yAGmB5HmgA_11_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">12776</dsgx:CRSUAwardsGrantsInPeriod>
    <dsgx:CRSUAwardsVestedAndSettledInCash
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="0"
      id="Tc_QYae2ppeM0e6E_xnE46v-A_12_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">26755</dsgx:CRSUAwardsVestedAndSettledInCash>
    <dsgx:CRSUAwardsForfeitedInPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="0"
      id="Tc_CY2Sn2CHlUCfSy1ODDP_Zw_13_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">221</dsgx:CRSUAwardsForfeitedInPeriod>
    <dsgx:CRSUAwardsOutstandingNumber
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="0"
      id="Tc_EgkyauKnckKjWhxksjVeAg_14_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">24428</dsgx:CRSUAwardsOutstandingNumber>
    <dsgx:CRSUAwardsWeightedAverageContractualLife
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_1d3HFv_2BUOHh9t60BcqGg_14_4">P1Y4M24D</dsgx:CRSUAwardsWeightedAverageContractualLife>
    <dsgx:CRSUAwardNonvestedNumber
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="0"
      id="Tc_ICGqB2M_i0yL2zdoWBGdKA_16_2"
      unitRef="Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g">24428</dsgx:CRSUAwardNonvestedNumber>
    <dsgx:CRSUAwardNonvestedWeightedAverageContractualLife
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tc_zBGW-oSK4kWleZoXkwVYQw_16_4">P1Y4M24D</dsgx:CRSUAwardNonvestedWeightedAverageContractualLife>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_h9V1252FXUaVf6IBeLfeCg"
      decimals="-5"
      id="Narr_TAxwFdV1NkeqaLAwCEV1NA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">800000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_DwROZOUKqUyASpoDf9wQhg"
      decimals="-5"
      id="Narr_qeii-kaPCUaI1Vqo8DBM6Q"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">900000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_h9V1252FXUaVf6IBeLfeCg"
      decimals="-5"
      id="Narr_qJDqNLZ5506agojmXV2_XA"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1000000.0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2021_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_DwROZOUKqUyASpoDf9wQhg"
      decimals="-5"
      id="Narr_TIiU7rI02UaXTzwjjjov7g"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1500000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <dsgx:CashSettledRestrictedShareUnitsCompensationExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_6gWvZqMFu0-PySAX6jXeNw"
      decimals="-5"
      id="Narr__Au_Qh1gJk63ZzqaN0WJnQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1300000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
    <dsgx:CashSettledRestrictedShareUnitsCompensationExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_yN0rFVro70eOMuM0Ex5FRQ"
      decimals="-5"
      id="Narr_98AHr-f2y0CLdjFRuyi4Qg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1100000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
    <dsgx:CashSettledRestrictedShareUnitsCompensationExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_PlanNameAxis_dsgx_CashsettledRestrictedShareUnitMember_Vu5P28ZOKE2xlWNdAuVDzA"
      decimals="-5"
      id="Narr_lJ-_zSBOlEC5jGtC_AsM_g"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">900000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_8J0aS8KyWkeghm1zakFT8w">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;18&#160;- Income Taxes&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Income before income taxes is earned in the following tax jurisdictions:&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:55.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:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Canada&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 36,312&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 31,307&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,557&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 32,338&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26,072&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,962&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Other countries&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 33,960&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 12,990&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8,516&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 102,610&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 70,369&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 48,035&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Income tax expense is incurred in the following jurisdictions:&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:55.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:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Current income tax expense&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Canada&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,817&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,875&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,689&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (3,050)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,496&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Other countries&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,308&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,921&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 779&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 14,814&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,746&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,295&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Deferred income tax expense (recovery)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Canada&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,381&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7,047&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,008&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,941&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,537&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,390&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Other countries&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (8,808)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (2,061)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (655)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,514&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 14,523&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,743&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 16,328&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18,269&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11,038&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Income tax expense for 2022, 2021 and 2020 was 16%, 26% and 23% of income before income taxes, respectively, with current income tax expense being 14%, 5% and 11% of income before income taxes, respectively.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Current income tax expense increased in 2022 compared to 2021 primarily due to a current tax recovery in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Current income tax expense decreased in 2021 compared to 2020 primarily due to a voluntary change we elected to adopt in accounting for deferred revenue for income tax purposes in the United States. This change resulted in a decrease of $9.3 million in current income tax expense in 2021 and a corresponding increase in the &lt;span style="-sec-ix-hidden:Hidden_oRGbY52OSUKIW_NyZgdorw;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;deferred&lt;/span&gt;&lt;/span&gt; income tax expense for the same period. This decrease was partially offset by an increase in income before tax in other jurisdictions as a result of growth in the business.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Deferred income tax expense decreased in 2022 compared to 2021 primarily due to additional deferred tax expense in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company as well as a release in valuation allowances recorded in 2022 related to tax losses in EMEA carried forward from previous periods.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Deferred income tax expense increased in 2021 compared to 2020 primarily due to a voluntary change we elected to adopt in accounting for deferred revenue for income tax purposes in the United States.&#160;This increase was partially offset by a release in valuation allowance for other jurisdictions.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;The components of the deferred income tax assets and liabilities are as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:69.83%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:12.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Accrued liabilities not currently deductible&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 5,408&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,471&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Accumulated net operating losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 10,594&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,866&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Corporate minimum taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,346&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,596&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Difference between tax and accounting basis of property and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 23,754&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Research and development and other tax credits and expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,172&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,649&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Total deferred income tax assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 31,541&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 44,336&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Difference between tax and accounting basis of intangible assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (47,255)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (45,030)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Difference between tax and accounting basis of property and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Other temporary differences&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (2,886)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,109)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Total deferred income tax liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (50,141)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (47,139)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net deferred income taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (18,600)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,803)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Valuation allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,961)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (11,365)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net deferred income taxes, net of valuation allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (20,561)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (14,168)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:9.5pt;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:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:9.5pt;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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;As at January&#160;31, 2022, we have not accrued for foreign withholding taxes and Canadian income taxes applicable to approximately $573.0 million of unremitted earnings of subsidiaries operating outside of Canada. These earnings, which we consider to be invested indefinitely, will become subject to these taxes if and when they are remitted as dividends or if we sell our stock in the subsidiaries. If we decide to repatriate the foreign earnings, we would need to adjust our income tax provision in the period we determined that the earnings will no longer be indefinitely invested outside Canada.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The provision (recovery) for income taxes varies from the expected provision at the statutory rates for the reasons detailed in the table below:&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Income before income taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;102,610&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;70,369&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;48,033&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Combined basic Canadian statutory rates&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 26.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 26.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;%&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 26.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Income tax expense based on the above rates&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 27,192&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 18,648&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,729&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Increase (decrease) in income taxes resulting from:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Permanent differences&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3,467&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 875&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (673)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of differences between Canadian and foreign tax rates&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,855)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (600)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (274)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of rate changes on current year timing differences&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,085)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,063)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (609)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Adjustments relating to previous periods&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (569)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,034)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 94&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Increase (decrease) in accruals for uncertain tax positions&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (849)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,289&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,042)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Valuation allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (9,102)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 254&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 692&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Stock based compensation&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 100&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 352&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Other, including foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (871)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (200)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (231)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Income tax expense&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 16,328&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 18,269&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 11,038&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;We have income tax loss carry forwards which expire as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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:37.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:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:14.3%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.77%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.77%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:37.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Expiry year&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.36%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Canada&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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:14.3%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;United&#160;States&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.77%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;EMEA&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.63%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Asia&#160;Pacific&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.77%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:37.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;2023&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 49&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 49&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;2024&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 186&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 186&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 40&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 67&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 107&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 417&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 352&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 769&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8,022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,473&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33,054&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,553&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 44,102&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,890&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 33,094&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,207&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 45,213&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The following is a tabular reconciliation of the total estimated liability associated with uncertain tax positions taken:&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Liability, beginning of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,393&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,650&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Gross increases &#x2013; current period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 333&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,502&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Lapsing due to statutes of limitations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,372)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (759)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Liability, end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 7,354&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8,393&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We have identified accruals of &lt;span style="-sec-ix-hidden:Hidden_TB-LMOBP7kaQwfz92D98Eg;"&gt;&lt;span style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:normal;font-weight:normal;"&gt;$7.4&lt;/span&gt;&lt;/span&gt; million with respect to uncertain tax positions as at January&#160;31, 2022. It is possible that these accruals for uncertain tax positions will not be required in which case up to $7.4 million of the recorded liability will decrease the effective tax rate in future&#160;years if this liability is reversed. We believe that it is reasonably possible that $2.1 million of the uncertain tax positions could decrease tax expense in the next 12&#160;months relating primarily to tax&#160;years becoming statute barred for purposes of future tax examinations by local taxing jurisdictions.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;We recognize accrued interest and penalties related to uncertain tax positions as a current tax expense. As at January&#160;31, 2022 and January&#160;31, 2021, the unrecognized tax positions have resulted in no material liability for estimated interest and penalties.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Descartes and our subsidiaries file their tax returns as prescribed by the tax laws of the jurisdictions within which they operate. We are no longer subject to income tax examinations by tax authorities in our major tax jurisdictions as follows:&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:0pt;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:top;width:33.92%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="position:absolute;top:0pt;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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 style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Years No Longer Subject to Audit&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Tax Jurisdiction&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;background:#cceeff;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;"&gt;United States Federal&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;2019 and prior&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;"&gt;Canada&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;2017 and prior&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;"&gt;United Kingdom&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;2019 and prior&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;"&gt;Sweden&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;2015 and prior&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;"&gt;Norway&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;2020 and prior&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;"&gt;Netherlands&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;2014 and prior&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;"&gt;Belgium&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;2018 and prior&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;"&gt;Germany&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;2017 and prior&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;"&gt;Switzerland&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;2016 and prior&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12.9pt;"&gt;&lt;td style="vertical-align:top;width:66.07%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 0pt 7.5pt;"&gt;Brazil&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;width:33.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;2016 and prior&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_SVb7y_NYU06kQpSfCbWxeQ">&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:55.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:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Canada&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 36,312&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 31,307&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,557&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 32,338&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26,072&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 19,962&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Other countries&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 33,960&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 12,990&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8,516&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 102,610&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 70,369&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 48,035&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_CA_dp4Lg9uba0meUHvS8vBMVA"
      decimals="-3"
      id="Tc_Xdx78mTEM02eeZR8cjUCqQ_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">36312000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_CA_-qoUg8uSNEmdIC9kGUAjGQ"
      decimals="-3"
      id="Tc_npFZP1uZWkKqA3HiEvI6Aw_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">31307000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_CA_8UKHeEHvmUybpv2vplN8OA"
      decimals="-3"
      id="Tc_TansPqS1dUCymFfc8IHrbg_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">19557000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_US_Vrz8x3cMY0eGg2MgcD_XJg"
      decimals="-3"
      id="Tc_QUjag3ykskS8W7PZmRv26Q_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">32338000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_US_1k1e81jvskaCGwqzFZNxow"
      decimals="-3"
      id="Tc_81rLyQ07C0iSWGSstkpYvA_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">26072000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_US_A-vqgqS9w0Khx2tJGBb58w"
      decimals="-3"
      id="Tc_vrpPK84Rz0e0Rkips2tJpA_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">19962000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_2-m8W4ieSkm2EHWoicblBg"
      decimals="-3"
      id="Tc_qLqGVOcWpk271sogfoaNTw_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">33960000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_JVIx6YYHZ0SFgUNH4y46NQ"
      decimals="-3"
      id="Tc_-xSzbBlptU-TRyeuCV4V4g_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12990000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_0BoiksB-jUqzI_Pn77OHOg"
      decimals="-3"
      id="Tc_xGzBEnua0E-ZIq5TBJBLRA_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8516000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_t35tTRiLd0-31Glbm6Apsw_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">102610000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_ZkgynyRlskiCk_9YAARPrg_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">70369000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_gEVSaN_IwEOvFI4AWjiEiQ_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">48035000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_vUwXxOQcp0GPtKu0PIYBnw">&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:55.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:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Current income tax expense&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Canada&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,817&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,875&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,689&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (3,050)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,496&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Other countries&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,308&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 4,921&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 779&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 14,814&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,746&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,295&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Deferred income tax expense (recovery)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Canada&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,381&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 7,047&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,008&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,941&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 9,537&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,390&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Other countries&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (8,808)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (2,061)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (655)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,514&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 14,523&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 5,743&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:55.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 16,328&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 18,269&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 11,038&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_CA_dp4Lg9uba0meUHvS8vBMVA"
      decimals="-3"
      id="Tc_P385EAWEyUyWUwygFpo6Jg_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1817000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_CA_-qoUg8uSNEmdIC9kGUAjGQ"
      decimals="-3"
      id="Tc_dCGx3QaGbUCxSfWXmKuiVQ_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1875000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_CA_8UKHeEHvmUybpv2vplN8OA"
      decimals="-3"
      id="Tc_Bo_25_KdoEyvI9nHrbYlIA_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1020000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_US_Vrz8x3cMY0eGg2MgcD_XJg"
      decimals="-3"
      id="Tc_YsmDC4B2gUepyei8vu4a9Q_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8689000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_US_1k1e81jvskaCGwqzFZNxow"
      decimals="-3"
      id="Tc_V39Xx29oMUuQMOB1QFWGdw_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-3050000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_US_A-vqgqS9w0Khx2tJGBb58w"
      decimals="-3"
      id="Tc_JT2Wn1Nrw06I8pTScAwc_Q_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3496000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_2-m8W4ieSkm2EHWoicblBg"
      decimals="-3"
      id="Tc_5inqu8GaB0m0JFptwtoYkw_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4308000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_JVIx6YYHZ0SFgUNH4y46NQ"
      decimals="-3"
      id="Tc_eRPZ70SCCE-x4MyZFDrKFw_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4921000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_0BoiksB-jUqzI_Pn77OHOg"
      decimals="-3"
      id="Tc_tNuF4hem8kCwQKH7B7DjdA_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">779000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_7WkWbITCWUmUntkyDRLNow_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14814000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_Tvvbcm1lVE-wNNHsouiQtw_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3746000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_GBdMrfXPkUu-_sXIRQBUOw_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5295000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_CA_dp4Lg9uba0meUHvS8vBMVA"
      decimals="-3"
      id="Tc_aVY1eq2MUUasoj16_GrCIA_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8381000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_CA_-qoUg8uSNEmdIC9kGUAjGQ"
      decimals="-3"
      id="Tc_gGcX3-BZZ0ia6r-8wbqWGQ_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7047000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_CA_8UKHeEHvmUybpv2vplN8OA"
      decimals="-3"
      id="Tc_6oJ07D3e10qycBs8AevqeQ_9_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5008000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_US_Vrz8x3cMY0eGg2MgcD_XJg"
      decimals="-3"
      id="Tc_r2ww8CyvykqQRyXNdqhGmw_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1941000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_country_US_1k1e81jvskaCGwqzFZNxow"
      decimals="-3"
      id="Tc_T7lN5feq5026vcyPtxIDvA_10_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">9537000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_country_US_A-vqgqS9w0Khx2tJGBb58w"
      decimals="-3"
      id="Tc_kSFfUZeAJkeeUzDLXQ355Q_10_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1390000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_2-m8W4ieSkm2EHWoicblBg"
      decimals="-3"
      id="Tc_VO0Qeaf-fUCxQMmkbui5wA_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-8808000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_JVIx6YYHZ0SFgUNH4y46NQ"
      decimals="-3"
      id="Tc_Ady1D6AEMkymw_shuOJORQ_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-2061000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_us-gaap_IncomeTaxAuthorityAxis_dsgx_OtherCountriesMember_0BoiksB-jUqzI_Pn77OHOg"
      decimals="-3"
      id="Tc_l0IJJhaNNkqlLOyjCtXKAA_11_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-655000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_qvAQquaZPUyVD5vcb21i5A_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1514000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_SPS1NZBAlEWKlKvPEondCA_12_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">14523000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_StrEWOixw0euFu93e4WZLQ_12_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5743000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_SiKOsKftH0qO72OFZsuU6w_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">16328000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_MYads7CcfUOpZUjL_lZolg_13_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">18269000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_pnTOiJzCcEae6-1yO8KGPg_13_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11038000</us-gaap:IncomeTaxExpenseBenefit>
    <dsgx:IncomeBeforeTaxesPercent
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Narr_ZmA9HjSr8kqIcFjE0oMI4Q"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.16</dsgx:IncomeBeforeTaxesPercent>
    <dsgx:IncomeBeforeTaxesPercent
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Narr_-6S4tsi6dkqtOsMxNbC4SA"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.26</dsgx:IncomeBeforeTaxesPercent>
    <dsgx:IncomeBeforeTaxesPercent
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="2"
      id="Narr_FJqQ_KG4fkWelz-LUY_a7Q"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.23</dsgx:IncomeBeforeTaxesPercent>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="2"
      id="Narr_XIL6ELC0N0SgAq93onv0pQ"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.14</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="2"
      id="Narr_o0eFyg729EqLtvbETQHiDQ"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.05</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="2"
      id="Narr_Sx4eK1iACECWz3NtjPMRMw"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.11</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember_z7MAqE8efEW_Ldoeku3vXw"
      decimals="-5"
      id="Narr_rKIg3QGUH062dRFhZUJPvQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-9300000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_BL8lMeBVFkCROqVkWt0hfg">&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:69.83%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:12.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Accrued liabilities not currently deductible&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 5,408&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 4,471&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Accumulated net operating losses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 10,594&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,866&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Corporate minimum taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,346&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,596&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Difference between tax and accounting basis of property and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,021&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 23,754&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Research and development and other tax credits and expenses&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,172&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,649&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Total deferred income tax assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 31,541&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 44,336&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Difference between tax and accounting basis of intangible assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (47,255)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (45,030)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Difference between tax and accounting basis of property and equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Other temporary differences&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (2,886)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,109)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Total deferred income tax liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (50,141)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (47,139)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net deferred income taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (18,600)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,803)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Valuation allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,961)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (11,365)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Net deferred income taxes, net of valuation allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (20,561)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (14,168)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:9.5pt;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:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:9.5pt;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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_6gMBmvOvp06fp3k04dyrnw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5408000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_zK2VSUpZ50C7lv4gn2-heQ_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4471000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_LsOlIVV2S02g299krPmY3w_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">10594000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_BH9f5AK7FUy6GbtRLo5Idg_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12866000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <dsgx:DeferredTaxAssetsCorporateMinimumTaxes
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_jaA7jcxvN0uI0g8SVZOasw_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2346000</dsgx:DeferredTaxAssetsCorporateMinimumTaxes>
    <dsgx:DeferredTaxAssetsCorporateMinimumTaxes
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_ODcbZu4PuUCchiPDtsVr6g_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1596000</dsgx:DeferredTaxAssetsCorporateMinimumTaxes>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_zfgCjVhLLkmxrS2ICPwNmw_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12021000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_hgNukdIizkCjPapz3zbC3Q_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">23754000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_sYqztnVSTEuYR0OPNHckgQ_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1172000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc__B5p2TtVrEmLyHsmJz1zHg_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1649000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_e7NYx2HGeEa9h-677Nzjyg_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">31541000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_SUB4b8WpsUih3u-hW9cJTw_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">44336000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_D4-kMtkJzUmypnBEy6wR_g_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">47255000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_pkWReBaquE6cR80UG-5OKg_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">45030000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_oB8WiwMtxkORBS9g1DdLiA_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2886000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_5ERJ6C7zm0uHSJ-oE04kLg_13_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2109000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_bD3X36FX5E2G4IaB8FCgOQ_14_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">50141000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_l2q-bJalvUKOTc1P13PfSw_14_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">47139000</us-gaap:DeferredIncomeTaxLiabilities>
    <dsgx:DeferredTaxAssetsNetBeforeValuationAllowance
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_GMbQXYy2rEucNYSp6UzhCA_15_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-18600000</dsgx:DeferredTaxAssetsNetBeforeValuationAllowance>
    <dsgx:DeferredTaxAssetsNetBeforeValuationAllowance
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_6sx6s016KEqtc_KBfNi5Wg_15_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-2803000</dsgx:DeferredTaxAssetsNetBeforeValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_KdbtWdLh3Eih7ckgy2hGBg_16_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1961000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_SDV2l2qNiEWlalH6pcOdKQ_16_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11365000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <dsgx:DeferredTaxAssetsLiabilitesNet1
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_6EWqtZdyy0SxqaFkviu55Q_17_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-20561000</dsgx:DeferredTaxAssetsLiabilitesNet1>
    <dsgx:DeferredTaxAssetsLiabilitesNet1
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_VzN4qmKS8kaJIdHfj-pQVA_17_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-14168000</dsgx:DeferredTaxAssetsLiabilitesNet1>
    <us-gaap:UndistributedEarningsOfForeignSubsidiaries
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_TjMVrdfaZk-NSe1BxmCsAQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">573000000.0</us-gaap:UndistributedEarningsOfForeignSubsidiaries>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_dSC_BEVMgEeDL9be59i0Lg">&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Income before income taxes&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;102,610&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;70,369&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;48,033&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Combined basic Canadian statutory rates&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 26.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 26.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;%&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 26.5&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;%&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Income tax expense based on the above rates&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 27,192&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 18,648&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,729&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Increase (decrease) in income taxes resulting from:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Permanent differences&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 3,467&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 875&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (673)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of differences between Canadian and foreign tax rates&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,855)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (600)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (274)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Effect of rate changes on current year timing differences&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,085)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,063)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (609)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Adjustments relating to previous periods&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (569)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,034)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 94&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Increase (decrease) in accruals for uncertain tax positions&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (849)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,289&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,042)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Valuation allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (9,102)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 254&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 692&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Stock based compensation&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 100&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 352&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Other, including foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (871)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (200)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (231)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:51.73%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Income tax expense&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 16,328&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 18,269&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 11,038&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_bsukuzrE0EOd28Yn4Urmiw_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">102610000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_DjBERyjvWkqyb5t0bS48Ig_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">70369000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2019_To_1_31_2020_srt_StatementScenarioAxis_dsgx_AdjustmentForRoundingMember_p_k977-wkUmegClVDfGXMQ"
      decimals="-3"
      id="Tc_sUWWRhjZNk-bm4CiZC0Snw_3_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">48033000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="3"
      id="Tc_87OCWa8rjkijOmBJiHyGKA_5_2"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.265</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="3"
      id="Tc_z1_fddfvQ0yDga_WSgOLbQ_5_4"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.265</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="3"
      id="Tc_9TjEh-UDv0qthzluXLU9ig_5_6"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.265</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_QJSnuaMlr0mvbVcfssr1NQ_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">27192000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_DsFozyfni0uCYrdwQOTyng_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">18648000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_faIGTfH_Ck6JcV4xRuxWhQ_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12729000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_-h7V_GSCGk2GmROUm-biSg_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3467000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_1egfCf5B8EqafHn9ZdzHpQ_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">875000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_TpRSOlLfLUCd-20jJKhlKA_9_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-673000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_jXREWjNSgkCwf0HOosKqlA_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1855000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_7N6fbNpfAkCJbrZ_DQI7nA_10_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-600000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_DbMHirxONEubyedzFggdYQ_10_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-274000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_CYokoLuAME6ympPiOHeQMw_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1085000</us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate>
    <us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_DzyEPo2WjUO5MyuG8IwZ0A_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1063000</us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate>
    <us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_yfFtN05lPE6_-m2-Ybw5lQ_11_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-609000</us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_FmGwVLkf90CnB_I3WgWPWg_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-569000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_bMqEWFBgUEK3J0s3pATJZQ_12_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1034000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_3NwB9OEMz0qAd_-Won8QaA_12_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">94000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_r-nIvFj1MEypo1jgjuY8Hw_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-849000</dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions>
    <dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_LaDNosnajEid8-Bw2QnqaA_13_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1289000</dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions>
    <dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_R7B7a8K1cEOg3L7TKIyB-w_13_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1042000</dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_DXdNjKPHdkeVprprjHHSFQ_14_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-9102000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_ioj51ZGY50e49CtUSY4wZA_14_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">254000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_-SGz16I190qX7GPtDytkkw_14_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">692000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_gDy6ymRH5UGjWRZpfDzrKw_15_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">100000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_VIGL60voHEyHM8WEgW5AIA_15_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">352000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationOtherAdjustments
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_of1QoYPIdU-BIzPRxGBGHQ_16_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-871000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
    <us-gaap:IncomeTaxReconciliationOtherAdjustments
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_42pGaKf58U-lISM22vILTw_16_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-200000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
    <us-gaap:IncomeTaxReconciliationOtherAdjustments
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_mDqGyHkObE-ifJFphjecmA_16_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-231000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_3M9OJARvekmD5tFo7p9riA_17_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">16328000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_nI4sh7qyeEmm-kk7LSYTHQ_17_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">18269000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_G5ksiYivgUCtEVHVaMQuug_17_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">11038000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_sc6MtzXOFES9T7nnjHca-w">&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:37.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:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.36%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:14.3%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.77%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.63%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.77%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:37.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Expiry year&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.36%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Canada&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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:14.3%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;United&#160;States&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.77%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;EMEA&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.63%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Asia&#160;Pacific&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.77%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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:37.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;2023&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 49&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 49&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;2024&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 186&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 186&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;2025&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 40&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 67&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 107&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;2026&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;2027&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 417&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 352&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 769&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Thereafter&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8,022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,473&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 33,054&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,553&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 44,102&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:37.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.3%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,890&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 33,094&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,207&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 45,213&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2022Member_dH2gSqgTFkekaGwqxoz3MA"
      decimals="-3"
      id="Tc_vap1o4p47UugWhwEkerWHw_2_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">49000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2022Member_xSYF1Uobk0iMYrDd4Q5_2w"
      decimals="-3"
      id="Tc_6seRmXBdCkGQzSOBdEIWeg_2_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">49000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2023Member_pbhmeJTzEEGvgX0QollwRw"
      decimals="-3"
      id="Tc_mX7TfeFKuUSVUeeuvTf2Xw_3_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">186000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2023Member_47twzIQX9US1gRAIzK-aUg"
      decimals="-3"
      id="Tc_npht3QyBTE2xm5r_TY3KLg_3_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">186000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2024Member_NPDrKNl4d0CiofQn3q182g"
      decimals="-3"
      id="Tc__4WfeWhUVECCYLF0yKr_1g_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">40000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2024Member_EP-c_U_ZvkyawADVsUc-Aw"
      decimals="-3"
      id="Tc_CRFzTvKp2EOwFmjDI3qTFA_4_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">67000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2024Member_qJ84ak9nB0KUDO_nxMpjtQ"
      decimals="-3"
      id="Tc_VVhmEffE7Uq3acpnazR4YQ_4_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">107000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_KIBdpwnvzkWsrGEtyLogSw"
      decimals="-3"
      id="Tc_pHg5wasEg0ie8ZCyXxYwAg_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">417000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_FqALFL32L0-ZVtkRwQLTCw"
      decimals="-3"
      id="Tc_zJGkpC7frUOs8BDE79huuQ_6_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">352000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_TaxYear2026Member_-7oqMBKAW0Cw45fMmY7o7w"
      decimals="-3"
      id="Tc_ePspE4R9bkiLhoqPs4O49Q_6_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">769000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_CanadaRevenueAgencyMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_n3fDUqKHkkqwqyzCEm6tgw"
      decimals="-3"
      id="Tc_ID1lfNdLVEOaLok6sK9gvQ_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8022000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_La9WG1s4XEa-tW_hDzgizA"
      decimals="-3"
      id="Tc_cVRnARFnhUqoNOJiSyPvWg_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1473000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_8D9ltBQutE-KNl9UnONHSQ"
      decimals="-3"
      id="Tc_Uk7hTMDrmUG_NZ_sCjeNRA_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">33054000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_MA7SJdYuj0eFWVuYE8qEnA"
      decimals="-3"
      id="Tc_xxzVjm8yOk-rDRaY-z2PlQ_7_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1553000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_TaxPeriodAxis_dsgx_AfterTaxYear2026Member_in4-6PdoB06kzQIw1IwElg"
      decimals="-3"
      id="Tc_eVeeMGMlvEq-PCKr8yGH2g_7_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">44102000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_CanadaRevenueAgencyMember_bTrWatkgXEmVhEZwR06CHQ"
      decimals="-3"
      id="Tc_GqDF5YXUVU--7bEhEI3GeQ_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8022000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_us-gaap_InternalRevenueServiceIRSMember_8W5hBkpkD06GZ7pYOMklEg"
      decimals="-3"
      id="Tc_wHlrSa-6UEGRV-ZY-86CSw_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1890000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_EmeaIncomeTaxAuthorityMember_oqLUw-Rkj0WHJz2YuBuBwQ"
      decimals="-3"
      id="Tc_ABQEvS74A0itzcbQMzTA-w_8_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">33094000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_us-gaap_ForeignCountryMember_us-gaap_IncomeTaxAuthorityNameAxis_dsgx_AsiaPacificIncomeTaxAuthorityMember_cfQip8AjzkiEGTBypq8DxQ"
      decimals="-3"
      id="Tc_eorXBjhm-U2Cu5lRpPyheg_8_8"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2207000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_rBia1fIBa0auC6BhVbCQjQ_8_10"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">45213000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_9HUN_eJLaUuCOfnyAFMzqw">&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:13%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.38%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.4%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Liability, beginning of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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:13%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,393&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 6,650&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Gross increases &#x2013; current period&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 333&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,502&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Lapsing due to statutes of limitations&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (1,372)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (759)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:69.83%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Liability, end of year&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 7,354&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.38%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 8,393&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_Nm8GEdHY4UWqqBFtFyMfxQ_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8393000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="-3"
      id="Tc_4cQSuSfxhEC0xKe23bb4aQ_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6650000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_NTGbY8Pg1Uq8v4Qm459juQ_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">333000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_nhXMsovT-EuDqEbT8y4jOA_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2502000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_7Z6JuuB5kU-i6oymG5xJEw_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1372000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_dcqS5HU6-US2gjqT5ytAAA_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">759000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_TTNY3VnXnkyWQZMVfT-BUg_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7354000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_xjafrWL64Uu-s6AdT4gOAA_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8393000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_qy7C410ayECJjxPqfCLvcQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7400000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_IcxUWcimNECupHSNcPrQ0Q"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2100000</us-gaap:SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_DoAmh-cD6UKIIjFE9GESMQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;19&#160;&#x2013; Contract Balances, Performance Obligations and Contract Costs&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Deferred Revenue&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The following table presents the changes in the deferred revenue balance as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:75.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:'Arial','Helvetica','sans-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:3.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:21.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:'Arial','Helvetica','sans-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:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Deferred&#160;Revenue&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 42,063&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Recognition of previously deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (37,843)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Deferral of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 46,386&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Increases from business combinations, net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 39&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 646&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 51,291&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Recognition of previously deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (38,065)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Deferral of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 45,234&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Increases from business combinations, net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 729&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (489)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 58,700&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Current&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 56,780&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Long-term&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,920&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Performance Obligations&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;As of January&#160;31, 2022, approximately $366.8 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 80% of these remaining performance obligations over the next 24&#160;months with the balance recognized thereafter.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Contract Assets&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The following table presents the changes in the contract assets balance as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:78.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:18.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:'Arial','Helvetica','sans-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:78.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:18.67%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Contract&#160;Assets&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,107&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Transfers to trade receivables from contract assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (563)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 783&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,353&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Transfers to trade receivables from contract assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (730)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 815&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,443&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="text-decoration-line:underline;text-decoration-style:solid;"&gt;Contract Costs&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;Capitalized contract costs net of accumulated amortization is $16.6 million at January&#160;31, 2022 ($12.9 million at January&#160;31, 2021). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates. The total contract cost amortization included in sales and marketing expenses was approximately $4.7 million, $3.3 million and $2.5 million for the&#160;years ended January&#160;31, 2022, 2021 and 2020, respectively.&lt;/p&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Group_08xlwP0NtUWrvBh5uzvZSg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:75.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:'Arial','Helvetica','sans-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:3.12%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:21.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:'Arial','Helvetica','sans-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:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Deferred&#160;Revenue&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 42,063&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Recognition of previously deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (37,843)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Deferral of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 46,386&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Increases from business combinations, net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 39&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 646&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 51,291&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Recognition of previously deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (38,065)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Deferral of revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 45,234&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Increases from business combinations, net&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 729&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (489)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 58,700&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Current&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 56,780&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:75.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Long-term&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:21.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,920&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:78.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:'Arial','Helvetica','sans-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:3.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:'Arial','Helvetica','sans-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:18.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:'Arial','Helvetica','sans-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:78.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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:18.67%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Contract&#160;Assets&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,107&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Transfers to trade receivables from contract assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (563)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 783&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 26&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,353&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Transfers to trade receivables from contract assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (730)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 815&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Effect of movements in foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:78.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:18.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,443&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_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="-3"
      id="Tc__ULeklGSp0OtpQztq7H9QA_2_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">42063000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_X4SYX6al1USVWpdiuTwOVw_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-37843000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_SCA6aeX-6UOSqQs6fTGeaw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">46386000</dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue>
    <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_XinJoG2NK0GrhTQPcF1oNg_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">39000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
    <dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_mdFiWOmHrku1imd7Kc1NWg_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">646000</dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange>
    <us-gaap:ContractWithCustomerLiability
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_vwODY6lAjkmkZDGneeVCFw_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">51291000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_KOIDwkPzvU20XgF6tqOSWg_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-38065000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_RHsrtTlo_UyTekgSVwwX2Q_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">45234000</dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue>
    <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_Ery7ArbGsEabGj-SAea4SQ_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">729000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
    <dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_ff3e_e3E7UOtLoJ3LiM-Zg_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-489000</dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange>
    <us-gaap:ContractWithCustomerLiability
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_EJTQw91670ysNfU6zV8Njw_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">58700000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_I5OaAt7UrEmVoIWIhawsHw_13_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">56780000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:DeferredRevenueNoncurrent
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_WDVqAUnerEKpikRnvyPv-Q_14_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1920000</us-gaap:DeferredRevenueNoncurrent>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_pCQ5KkbYU0WGSletecqyzQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">366800000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="INF"
      id="Narr_p-zNrMKyP0ypUiw85joYCw"
      unitRef="Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ">0.80</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="As_Of_1_31_2022_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20240131_K7bJRvcCaUaOJCsKzIRyQA"
      id="Narr_xfT_vVkynU2bBxB3UpdajA">P24M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:ContractWithCustomerAssetNet
      contextRef="As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg"
      decimals="-3"
      id="Tc_QQq9hPdhyUSuoLr5lb1g9w_2_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1107000</us-gaap:ContractWithCustomerAssetNet>
    <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_xytleG9N_kqaD2k_6Kqg7w_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">563000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
    <dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_5nvpbF1dX0CIzmhVD9dCSw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">783000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet>
    <dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_-0_bB2gcLk6yeHb8L2mNBQ_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">26000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange>
    <us-gaap:ContractWithCustomerAssetNet
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_4GeUBMf-002_DIy7ZBHYTg_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1353000</us-gaap:ContractWithCustomerAssetNet>
    <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_qw5o1Zrig0yNofyEgtLGgA_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">730000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
    <dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_w1D_Gvj9sUaEQhMRT_f2qA_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">815000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet>
    <dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc__sfOW5guX0-Fo65Te_dJJA_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange>
    <us-gaap:ContractWithCustomerAssetNet
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_pVYevnsNbEia0M3Kg1AucQ_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1443000</us-gaap:ContractWithCustomerAssetNet>
    <us-gaap:CapitalizedContractCostNet
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-5"
      id="Narr_UFMyNbHmC06QxlM70-959g"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">16600000</us-gaap:CapitalizedContractCostNet>
    <us-gaap:CapitalizedContractCostNet
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-5"
      id="Narr_Q9Skr58ggUSZkh85czET-w"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12900000</us-gaap:CapitalizedContractCostNet>
    <us-gaap:CapitalizedContractCostAmortization
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-5"
      id="Narr_PPKvco5dQEi1EB8wjd7fNg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4700000</us-gaap:CapitalizedContractCostAmortization>
    <us-gaap:CapitalizedContractCostAmortization
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-5"
      id="Narr_7FvGPCeKEUG5ra4-ZzCA6w"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3300000</us-gaap:CapitalizedContractCostAmortization>
    <us-gaap:CapitalizedContractCostAmortization
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-5"
      id="Narr_-d3CIi9FJ0-QBHlNguuLlg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2500000</us-gaap:CapitalizedContractCostAmortization>
    <us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_nqosLCv5X0a7N5T1hrncMA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;20&#160;- Other Charges&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&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 &lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The following tables shows the components of other charges as follows:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Acquisition-related costs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,904&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,981&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,457&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Contingent consideration adjustments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,458&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,946)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 340&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Restructuring plans&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,300&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 6,428&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,335&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,797&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-style:italic;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Fiscal 2021 Restructuring Plan&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;In the second quarter of fiscal 2021, management approved and began to implement a restructuring plan (the &#x201c;Fiscal 2021 Restructuring Plan&#x201d;) to reduce operating expenses. To date, $2.4 million has been recorded within other charges in conjunction with this restructuring plan. These charges are comprised of workforce reduction and the accelerated ROU asset amortization associated with certain office closures. This plan is substantially complete with a nominal amount of future expected office closure costs.&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The following table shows the changes in the restructuring provision for the Fiscal 2021 Restructuring Plan:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Workforce&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Reduction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Office&#160;Closures&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:58.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Accruals and adjustments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,717&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 583&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,300&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Cash draw downs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,657)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (583)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,240)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 10&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 10&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 70&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 70&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Accruals and adjustments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Cash draw downs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (72)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (136)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock>
    <us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_lRD5IYrO7EyusXST_u7a7w">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Acquisition-related costs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 1,904&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 1,981&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,457&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Contingent consideration adjustments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 4,458&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt; (1,946)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 340&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Restructuring plans&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,300&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 6,428&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 2,335&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 3,797&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_oeIyNg_WkkW340xfFnP7kA_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1904000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_K8BJZoF2s0O8YwxbOAeniw_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1981000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_XUF2Q5O4E0a6PSWUEgUZaA_3_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3457000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_anXbaIIx4EKw2tSH0ie7Cw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">4458000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_5lv6jI0xv0iVSGP8xNGbyw_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1946000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_xkE7rECoAUOD6sfuxLuRng_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">340000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:RestructuringCharges
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_3hnoQayllEa6AYAfIPBEag_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">66000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_CMOzcZ2YNkm6gI3_xjvjfQ_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2300000</us-gaap:RestructuringCharges>
    <us-gaap:OtherNonoperatingExpense
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_GYmntnt_0k6oyvTnG7--2A_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6428000</us-gaap:OtherNonoperatingExpense>
    <us-gaap:OtherNonoperatingExpense
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_UV7IcQDcGUWmYlWojGcryw_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2335000</us-gaap:OtherNonoperatingExpense>
    <us-gaap:OtherNonoperatingExpense
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_UfPtFdfu60e009DAMle6hQ_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3797000</us-gaap:OtherNonoperatingExpense>
    <us-gaap:RestructuringCharges
      contextRef="Duration_5_1_2020_To_7_31_2020_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2021RestructuringPlanMember_uwsr5UeuT0mJDmP5YmRbvw"
      decimals="-5"
      id="Narr_2N9SORXiKkuUCxKIfeetZg"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2400000</us-gaap:RestructuringCharges>
    <us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_eK4wn-Z7zUKC7qZFXw6VEg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Workforce&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;Reduction&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;Office&#160;Closures&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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:58.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2020&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Accruals and adjustments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,717&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 583&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 2,300&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Cash draw downs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,657)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (583)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,240)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Foreign exchange&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 10&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 10&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 70&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; &#x2014;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 70&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Accruals and adjustments&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.6%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 66&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Cash draw downs&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (72)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (136)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Balance at January 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock>
    <us-gaap:RestructuringReserveAccrualAdjustment1
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_o2zoEyp7oE2CHwT3-ufIYQ"
      decimals="-3"
      id="Tc_ac6znu2ay0uZhPaeDpaW6Q_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1717000</us-gaap:RestructuringReserveAccrualAdjustment1>
    <us-gaap:RestructuringReserveAccrualAdjustment1
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_FeZTDz1knEOIm6s3NcMHSQ"
      decimals="-3"
      id="Tc__WwYlVI2vk2qfUXQhN6T6w_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">583000</us-gaap:RestructuringReserveAccrualAdjustment1>
    <us-gaap:RestructuringReserveAccrualAdjustment1
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_KRd0KY0xRkGlWjoc5BLn2Q_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2300000</us-gaap:RestructuringReserveAccrualAdjustment1>
    <us-gaap:PaymentsForRestructuring
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_o2zoEyp7oE2CHwT3-ufIYQ"
      decimals="-3"
      id="Tc_jQuvWMCv-0O47R5OT9Q6kw_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1657000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_FeZTDz1knEOIm6s3NcMHSQ"
      decimals="-3"
      id="Tc_zw8yLcHxGUCITMGmbBZhmQ_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">583000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_K1acWlWWRE-vYx0eO62TXg_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2240000</us-gaap:PaymentsForRestructuring>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="Duration_2_1_2020_To_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_o2zoEyp7oE2CHwT3-ufIYQ"
      decimals="-3"
      id="Tc_0IQeX8bEH0K-mKqHW01TXQ_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-10000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_3SCajR8XekOJOpX2ptZSLQ_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-10000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserve
      contextRef="As_Of_1_31_2021_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_zb8-b27fxEOqONHKWF7GSA"
      decimals="-3"
      id="Tc_jeX9_8c_kEaUIvWqQOaGNQ_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">70000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_tUbocdYFZEqJSwjWI_Ajww_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">70000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserveAccrualAdjustment1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_sDHuZnahDkGFo4n3vcYPFg"
      decimals="-3"
      id="Tc_jqJ8J-HlcU2QZajiCsFZ0Q_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2000</us-gaap:RestructuringReserveAccrualAdjustment1>
    <us-gaap:RestructuringReserveAccrualAdjustment1
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_l1xtGup8hUiSmVvpkwVeVA"
      decimals="-3"
      id="Tc_8gqhc1dPp02VzpAz9Lcudg_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">64000</us-gaap:RestructuringReserveAccrualAdjustment1>
    <us-gaap:RestructuringReserveAccrualAdjustment1
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_NO68-gwVJ0WCHj_bJ3bVPQ_8_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">66000</us-gaap:RestructuringReserveAccrualAdjustment1>
    <us-gaap:PaymentsForRestructuring
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_RestructuringCostAndReserveAxis_us-gaap_EmployeeSeveranceMember_sDHuZnahDkGFo4n3vcYPFg"
      decimals="-3"
      id="Tc_ZPYbbMzAg0OkN0Kbb-r1tQ_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">72000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_RestructuringCostAndReserveAxis_us-gaap_FacilityClosingMember_l1xtGup8hUiSmVvpkwVeVA"
      decimals="-3"
      id="Tc_WcdjlP5muUGdpHCc4pMV7w_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">64000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_I7N4y8SPWEKavdcYwKjY8w_9_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">136000</us-gaap:PaymentsForRestructuring>
    <us-gaap:CashFlowSupplementalDisclosuresTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_RE2T2__ee0SWVolQfJOinQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;21&#160;&#x2013; Supplemental Cash Flow Information&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;The following tables presents the cash flow changes in operating asset and liabilities:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Trade accounts receivable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (2,884)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 143&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,733&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Other accounts receivable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,042&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (7,098)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,547)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Prepaid expenses and other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (8,276)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,029)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,942)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Inventory&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (498)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 99&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (345)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Accounts payable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,336&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (686)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,768&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Accrued liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 13,760&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (999)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,265&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Income taxes payable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 426&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,835&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,550)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (259)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 283&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 546&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 6,142&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 5,877&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (4,184)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,789&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (3,575)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,256)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="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_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_N1dtE6k-_0yQHtyTfzuEuQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Trade accounts receivable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (2,884)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 143&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,733&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Other accounts receivable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,042&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (7,098)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (2,547)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Prepaid expenses and other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (8,276)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,029)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,942)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Inventory&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (498)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 99&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (345)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Accounts payable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 2,336&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (686)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 1,768&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Accrued liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 13,760&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (999)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,265&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Income taxes payable&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 426&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 3,835&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (1,550)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; (259)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 283&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 546&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Deferred revenue&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 6,142&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 5,877&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (4,184)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 12,789&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (3,575)&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt; (5,256)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_KYXDpjltnEeef71XQCCZ9g_3_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2884000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_FQLBw4XFSE-PwzjOvh11cQ_3_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-143000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_c3h4dB2w6EKlf-u4o3PF8A_3_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-3733000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_4DasN_oHl06JyGvYq3IZsw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-2042000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_4SeCLCJ7e0qhhCpO6c8YoA_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7098000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_P0a9IgrEE0iJmgzNUf0RbQ_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2547000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_WVu255f0h0OfbTbseeJc_g_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8276000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_F_RDSPlplUOuTGeQSR0OQg_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5029000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_Zwn90tLNwUWYnCs2QxOP9g_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5942000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc__5-kxb0SOE-xYEFMJ9Ibyw_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">498000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_7QcgPQzN7Eq50bVkLf9rgA_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-99000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_hHgCJ8tqfUKs0sM1W0XD6Q_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">345000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_s_5TnSQJdEKQDC3ITe0bPw_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">2336000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_mw_DELCJ20mkUl-x_p3WXA_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-686000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_aKdsQ3Irsk6_OzrqMBDXeg_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">1768000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_EPEevvXZF0Glu_czcJaggg_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">13760000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_ueitHLnPy0qOeEeYZUKanA_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-999000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_A9QInboARU-3qHZ2h9HnMA_8_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3265000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInIncomeTaxes
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_yJcOicpb-0GEN-6WVJiWMQ_9_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">426000</us-gaap:IncreaseDecreaseInIncomeTaxes>
    <us-gaap:IncreaseDecreaseInIncomeTaxes
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_gRX8y-eQOEijdesGcvamuA_9_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3835000</us-gaap:IncreaseDecreaseInIncomeTaxes>
    <us-gaap:IncreaseDecreaseInIncomeTaxes
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_HeQUCVjNqEaIcrPMrKV7FQ_9_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-1550000</us-gaap:IncreaseDecreaseInIncomeTaxes>
    <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_dZK2phUEEEuYv5pLEnG2Sw_10_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-259000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
    <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_FJONZRnmVUmMaXE4CscgOg_10_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">283000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
    <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_VKDhAGKlZUOJ0WyFMpNzkQ_10_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">546000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_GhtN8wdC-0i7j3cEdEXwsg_11_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">6142000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_qUT8SULW4U-IlTnURYIIJw_11_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5877000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_dMQC0Cmfq02YQxpc4GnIYA_11_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-4184000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_qPyCRjbFPESDMf-NX_u1Bg_12_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">-12789000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_o3puUYICnkqkI7ZPc6dkuw_12_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">3575000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_pJnjsCtCdUa6NkN70ZbXHw_12_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5256000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_mL_EYzQveUGRpiRjBiBndA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;22&#160;- Segmented Information&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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 one reportable business segment providing logistics technology solutions. The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 242,086&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 211,232&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 202,814&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Europe, Middle-East and Africa&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 128,990&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 94,163&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 82,596&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Canada&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 36,116&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 29,388&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 27,304&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Asia Pacific&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 17,498&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 13,881&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 13,077&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 424,690&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 348,664&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 325,791&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;License&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 5,060&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"&gt; 5,054&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"&gt; 7,582&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Services&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 378,494&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"&gt; 309,731&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"&gt; 284,654&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Professional services and other&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;b style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 41,136&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"&gt; 33,879&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 9pt 0pt 0pt;"&gt; 33,555&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 424,690&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 348,664&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 325,791&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&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;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Total long-lived assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 102,649&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 92,442&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Europe, Middle-East and Africa&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 43,922&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 39,769&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Canada&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 84,943&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 107,472&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Asia Pacific&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,912&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,398&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 240,426&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 252,081&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfReportableSegments
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="0"
      id="Narr_dj4InWiKrU2UJOsCbrl62Q"
      unitRef="Unit_Standard_segment_KK23ak5saEO7Bet-BMU5GQ">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_2gSustHcUkq3G0iozer0MQ">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:61.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:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.26%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.06%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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.75%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;i style="font-style:italic;"&gt;Year Ended&lt;/i&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.26%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="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.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="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.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;b style="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.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;2020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;Revenues&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 242,086&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 211,232&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 202,814&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Europe, Middle-East and Africa&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 128,990&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 94,163&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 82,596&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Canada&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 36,116&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 29,388&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 27,304&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;Asia Pacific&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 17,498&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 13,881&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 13,077&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:61.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="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.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 424,690&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 348,664&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"&gt; 325,791&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_country_US_VbxbVoj3b06INSbM_Y5HeQ"
      decimals="-3"
      id="Tc_U5IbSj-D0UGODSUJq9eFpw_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">242086000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_country_US_FJqnonP8lkyEfzDqioCdqQ"
      decimals="-3"
      id="Tc_9YTDVJE8Y0egIyEDIgMCVg_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">211232000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_country_US_fFiFF8jOfkKgXgvDCb1jnw"
      decimals="-3"
      id="Tc_7q59LNtX1Ua0NEqquEDKEQ_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">202814000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_kgEa_faQEEaf9O0kgi3l8A"
      decimals="-3"
      id="Tc_HkPdhvaFE0mfGUmizoGb1Q_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">128990000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_K-5exWnX8E-v55CULfOfLg"
      decimals="-3"
      id="Tc_nHUIN6hFyUqteaX0Ex_mkQ_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">94163000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_us-gaap_EMEAMember_mXxsr2nHD0KxZ_H5QJd88w"
      decimals="-3"
      id="Tc_G0upJSvgtEWVl1FZDrL9ZA_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">82596000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_country_CA_VkQUR2kSEEmJnna-3JFEaQ"
      decimals="-3"
      id="Tc_E4LpwsTgkEuCaD8kLiBowA_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">36116000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_country_CA_UjmB8NPywk6FmXwRFCgl9A"
      decimals="-3"
      id="Tc_P_K9jKeTWUuJAQDtPGKeiQ_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">29388000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_country_CA_x69LzXeWOk-JuVkVxesPuw"
      decimals="-3"
      id="Tc_Jw_dAUe17k-2O9fMt_zocQ_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">27304000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_255iORS_60mUVBtHlLU-CA"
      decimals="-3"
      id="Tc_u31OrRdlsU28gH2rHB9JzA_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">17498000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2020_To_1_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_s19lreQFN0G4CHA8kcRBPw"
      decimals="-3"
      id="Tc_iGDtqP574ESwfYTOgj8IQg_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">13881000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2019_To_1_31_2020_srt_StatementGeographicalAxis_srt_AsiaPacificMember_MV9UcAsif0a_xzDnffJPrQ"
      decimals="-3"
      id="Tc_7gw3rHG-OUi8HrVuAGL13A_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">13077000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_4RADF1pNAkOHvHJQXfO63w_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">424690000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_K2qnZHEL5UKHOf5rwCPVoQ_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">348664000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_N763nLzI-Uuk-DFbDs3OHA_8_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">325791000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_b3LJslJap0WPl9QcFznUPg">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_TnVIMvcpNkClOMdi4uSnGg"
      decimals="-3"
      id="Tc_4DYIszrAKUKOF5PX59wTsQ_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5060000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_w06w9bHzm0q81XG4qJWEZw"
      decimals="-3"
      id="Tc_XmLrzq7n3kuPJRH8wFQt4A_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">5054000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_us-gaap_LicenseMember_-toxsNCiIUSMlF-mLvRISA"
      decimals="-3"
      id="Tc_gxPIv5z9mUCziTa6f6BB8Q_4_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">7582000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BSaZuJ8iV0GnzVZKjRCLhg"
      decimals="-3"
      id="Tc__GeElKmw-ECxjR546AEhgg_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">378494000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_6htMCidMNU-SCNpKrlv23Q"
      decimals="-3"
      id="Tc_BEqV6QJevUi33J0KJkV_dg_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">309731000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BPP9D5WlIEq4YeDnVnZ0lw"
      decimals="-3"
      id="Tc_UCZyw3ZY20eQay_8aKUjzQ_5_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">284654000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_UQUY5v6DW0iqCVCBqwRomQ"
      decimals="-3"
      id="Tc_vGpeB5qOzk2SLjy4Dr3wlA_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">41136000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2020_To_1_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_vTMkvCp1IE6fngyGxWx_1Q"
      decimals="-3"
      id="Tc_e9bQ97nuWkezkxoKvINKdA_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">33879000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2019_To_1_31_2020_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember__m-sOO5qIUeZ_06HupfX0g"
      decimals="-3"
      id="Tc_QinEGUIXwkSbOsIOtzP5tQ_6_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">33555000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      decimals="-3"
      id="Tc_Id9qVKEodEqg_DISVeSKHA_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">424690000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2020_To_1_31_2021_4ua5Ylr9mE2tazEVQ8TBdw"
      decimals="-3"
      id="Tc_NqwkSCd1r0Wx2mTuvusslw_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">348664000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng"
      decimals="-3"
      id="Tc_aKQBomi6j0Wy4uqmtDD2UQ_7_6"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">325791000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb_WtFh4AyKm0qEmquHZOlMJw">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;min-height:0.0pt;margin:0pt;"&gt;&lt;span style="font-size:0pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:70.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.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:'Arial','Helvetica','sans-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.94%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:11.55%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt;January&#160;31,&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;January&#160;31,&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="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.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&#160;&#160;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;2021&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;Total long-lived assets&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 102,649&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 92,442&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Europe, Middle-East and Africa&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 43,922&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 39,769&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Canada&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 84,943&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 107,472&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;Asia Pacific&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="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.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 8,912&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 12,398&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="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.94%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt;&lt;b style="font-weight:bold;"&gt; 240,426&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"&gt; 252,081&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_US_FcXQBM-8kkCcoJ-ZFGX4-A"
      decimals="-3"
      id="Tc_d32po2rAB0qMcELPPoDWVQ_4_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">102649000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2021_srt_StatementGeographicalAxis_country_US_uENRYDC8qUu5zkQ-ErjPaQ"
      decimals="-3"
      id="Tc_AXcy9lkqUU-kE303x4ueGw_4_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">92442000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_nwDerRE9r0e6p4gjDGggYg"
      decimals="-3"
      id="Tc_h2RulvIhR0uZaSLHCG1lng_5_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">43922000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_bEDa6AzDgUuoUnj9f094CA"
      decimals="-3"
      id="Tc_pXI0T2UQaUOs-3NJnFnAOA_5_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">39769000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_CA_zVSpNieKykqfgPNhmnCX9g"
      decimals="-3"
      id="Tc_RXQtF22WSUKd3qBdGJXpdQ_6_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">84943000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2021_srt_StatementGeographicalAxis_country_CA_WJM5zVB3HEGEGtna5KPVRg"
      decimals="-3"
      id="Tc_bWVTxwp5B0SCxlUfQSxVww_6_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">107472000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_gXjw1liBHESrg_jt9hHuxA"
      decimals="-3"
      id="Tc_veUu_1Ukt0C34D4k-bF25w_7_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">8912000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_4Pd12t1mQE2IfF6lO85jSw"
      decimals="-3"
      id="Tc_kLKHmKHPykKmhSw2I9Zv0g_7_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">12398000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q"
      decimals="-3"
      id="Tc_GTU-bEG2kkyykIOiUxMhPw_8_2"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">240426000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw"
      decimals="-3"
      id="Tc_axTj6YJvEEOjFFX9Pxdp7w_8_4"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">252081000</us-gaap:NoncurrentAssets>
    <us-gaap:SubsequentEventsTextBlock
      contextRef="Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg"
      id="Tb__q8n5WjOsU2Fv4NqmKkmFA">&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;font-weight:bold;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;Note&#160;23&#160;&#x2013; Subsequent Event&lt;/p&gt;&lt;p style="font-family:'Arial','Helvetica','sans-serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;On February&#160;9, 2022, Descartes acquired all of the shares of NetCHB, LLC, 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 consideration of up to $60.0 million based on NetCHB achieving revenue-based targets over the first two&#160;years post-acquisition. As of the issue date of these consolidated financial statements, the fair value of the acquired assets and liabilities has not been determined.&lt;/p&gt;</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_R2B2bfsFSUCWd9P9iuu-Sg"
      decimals="-5"
      id="Narr_Pi3mVmJBVUeTwgAQrQXfoQ"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">38700000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_3QFf5n1hKEaU_I-jPBavcw"
      decimals="-5"
      id="Narr_BFGzvlgRT0GU8ibV0xi4Ug"
      unitRef="Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ">60000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>128
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( "YSCE0'04UB@0   +$    0    9&]C4')O<',O87!P+GAM
M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG
M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGD<Z,STA)8*O4'J@)I9GF
M3?X.CD:?<@X>K7A.YNJQ<&4GPZ4A!0W_<FW>J=0U[R;UEA_6\#MI7E!+ P04
M    "  N<XY4GU!??>\    K @  $0   &1O8U!R;W!S+V-O<F4N>&ULS9+!
M:L,P#(9?9?B>R$F[,DSJRT9/'0Q6V-C-V&IK&B?&UDCZ]G.\-F5L#["CI=^?
M/H$:[87N [Z$WF,@B_%N=&T7A?9K=B3R B#J(SH5RY3H4G/?!Z<H/<,!O-(G
M=4"H.5^!0U)&D8()6/B9R&1CM- !%?7A@C=ZQOO/T&:8T8 M.NPH0E56P.0T
MT9_'MH$;8((1!A>_"VAF8J[^B<T=8)?D&.V<&H:A'!8YEW:HX/UY^YK7+6P7
M274:TZ]H!9T]KMEU\MOB\6FW8;+F=5WP95$M=]6#J.\%7WU,KC_\;L*N-W9O
M_['Q55 V\.LNY!=02P,$%     @ +G..5)E<G",0!@  G"<  !,   !X;"]T
M:&5M92]T:&5M93$N>&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T$W-I=MNTF83M
M3A^%$5B-;'EDD81_OT<V$,N6#>V23;J;/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R
M>&#9+]O6N[<OWN!7,B0103 9IZ_PP JE3%ZU6FD PSA]R1,2P]R"BPA+>!3+
MUES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4?,_@5RU2-9:,!
M$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA5,+$P&IG/U9K
MQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M&N#C\7@XMLO2
MBW <!.!1NY["G?1LOZ1!";2C:=!DV/;:KI&FJHU33]/W?=_KFVB<"HU;3]-K
M=]W3CHG&K=!X#;[Q3X?#KHG&J]!TZVDF)_VN:Z3I%FA"1N/K>A(5M>5 TR
M6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T1G*=D 4. #?$
MT4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7<K_WUE[O)I#-ZG7TZSFN4
M?VFK :?MNYO/D_QSZ.2?IY/734+.<+PL"?'[(UMAAR=N.Q-R.AQG0GS/]O:1
MI24RS^_Y"NM./&<?5I:P7<_/Y)Z,<B.[W?98??9/1VXCUZG LR+7E$8D19_(
M+;KD$3BU20TR$S\(G8:8:E < J0),9:AAOBTQJP1X!-]M[X(R-^-B/>K;YH]
M5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J-2S%UGB5P/&M
MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZ<TT#PE"\D^DJ1CVFS(Z=T)LWH
M,QK!1J\;=8=HTCQZ_@7YG#4*')$;'0)G&[-&(81IN_ >KR2.FJW"$2M"/F(9
M-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$.$9)>-T(^8LZ+
MD!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]072N0/)J<_Z3(T
M!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL!_]':-\*K^(+
M.7\N?<^E[[GT/:'2MS<C?6?!TXM;WD9N6\3[KC':US0N*&-7<LW(QU2ODRG8
M.9_ [/UH/I[Q[?K9)(2OFEDM(Q:02X&S022X_(O*\"K$">AD6R4)RU3393>*
M$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.W<DOJMI2^M28X
M2O2QS'!.'LL,.V<\DAVV=Z =-?OV77;D(Z4P4Y=#N!I"O@-MNIW<.CB>F)&Y
M"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>(\J(A[J&&F,_#
M0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R4E5@,5O& RN0
MHGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K>9;'!51W/55OR
ML+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4XOT4SMA*7&+SC
MYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5YYN<KGHB=OJ7
M=\%@\OUPR4</Y3OG7_1=0ZY^]MWC^FZ3.TA,G'G%$0%T10(CE1P&%A<RY%#N
MDI &$P'-E,E$\ *"9*8<@)CZ"[WR#+DI%<ZM/CE_12R#ADY>TB42%(JP# 4A
M%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+A=OB5,V[&KXF
M8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.'<YMZN,)%K/]8UA[Y,M\Y<-LZW@->
MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_
M2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H:,]6+K#F-"F]!
MU4#E/]O4#6CV#30<D05>,9FV-J/D3@H\W/[O#;#"Q([A[8N_ 5!+ P04
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
M]=FYNM%R47[JO9-:RZR\G',6<V5>@/_?2ZG7-Z:"^N/_X7]02P,$%     @
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
MHC8/C![J8\57RAC-ZML]B6)25 #^_Y;RCM,^5!_HCK(G_P%02P,$%     @
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
M?/WB_:;</&YFR22?B?2O)%:;BU$X(C%?LUVJ[L7^=UYOR-/^5B*5Y2?95]C
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
MDJW!9/ I!:<W[<>!]D:)K3DN7PFE1&4N-XR"+&H _'\M0/WW-_H%W2>:B_\
M4$L#!!0    ( "YSCE0@ +9#>P0  +$)   8    >&PO=V]R:W-H965T<R]S
M:&5E=#DN>&ULK59M;]LV$/XK!P\86L#O2;>@=@PTZ;IU0+>@WLMGFCI91"A2
M(ZDX[J_?<Y2L.,6:3_MBB]3=<\_=/3QJ??#A/E;,B1YKZ^+UJ$JI>3N;15UQ
MK>+4-^SPIO2A5@G+L)_%)K JLE-M9\OY_(=9K8P;;=9Y[RYLUKY-UCB^"Q3;
MNE;A>,/6'ZY'B]%IX[/95TDV9IMUH_:\Y?1G<Q>PF@THA:G91>,=!2ZO1^\6
M;V\NQ3X;_&7X$,^>23+9>7\OBX_%]6@NA-BR3H*@\/? MVRM ('&/SWF: @I
MCN?/)_0/.7?DLE.1;[W]VQ2INAY=C:C@4K4V??:'7[C/YXW@:6]C_J5#9WLQ
M'Y%N8_)U[PP&M7'=OWKLZW#F</4MAV7OL,R\NT"9Y7N5U&8=_(&"6 --'G*J
MV1ODC).F;%/ 6P._M'G/40?3Y KYDE+%=--&&,6XGB4$$+.9[L%N.K#E-\ 6
M2_KD7:HB_>0*+IX#S,!LH+<\T;M9OHCXJW)3NEB,:3E?+E_ NQC2O<AX%]_
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
M5JM<[]G[^-.S @IN(*2_;QFS)%P#.+:IZ?,J&,428L7$%IO!4CIL)^NGL%X
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
M*=QW43M.?EHL%VVN0B(**7@GN:L0 #59M07#"$MKW5T>,X[1402276/9#A<
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
M[+ J>1_0RKT%M/I\?')/P&KS>AM@U7.]YM;7??BS8U8/($K=!V\R=^--EJ2
M RO4MJB_K"<E%)C.+B!JUG* 5IG;DA9E%'5&02G=_31$\F?79:66I?C61OEE
MDS! 0HB,.?Y:KJ*,O7 ;8+5;YFU&\4M24FAVVA]+W959E-WYP^&0$V<1W>D!
M3$U40ZTI[FL/NQIM($KUVE,1VO%7=!XWG#4'#AA"4"!UVAH#G9#B>' 5T>YD
M&1/@2+6&EKQC>;6"M<.:8SHPG\T?!YX%#SU/>P,]>PA8Q@PE6#C8N)O-AU)A
MVJ"SIG:@85 H0A3IY%F3.39J7V"AK(LG0-Z\.Y$W]WNG],A4Y+_O5*]YZZG>
M!GW;8>!DTAO8&QTG.J=-0%;8\\YWDW%^_ML-'.[TR[?WFC%F@M_G*/(,WK#J
M>FFT#7I*42G&PQRT1EN*>9I/:+HQ82"N2#K'1[X!%TJS6;&8Q1X- ",96QEO
MECTI-""M(;F]GW$]#'B^']07/C5\0!/XK"#?C0/V_PZ0[[\(BS]!HQ0Q[QVN
M@)%XZ=_+%YRK.760BY,?V= H%Z63C"7=V+Y2GYV__PIOKZ_/771P5.5'_?LK
M9;U:P=K =D**C/"I6/<2#3J(AV?@Z#=5I/UQ^@<B?L'P\L=SF/7C=3B\4X=O
M@'#?^R#NDZ'5N_7XI)ZC+.1MJ]I;<-<O86.HH[$.4*\]UU55!Z8W5B]]!Y2C
MV2'NG.4()2F-RR"YJ)JHZ1%I-+S@!>/9]8R$6W0K6W^J/G_<6RN6!G_^,33Z
M[K>OO/\4K[R',C\]F&L^&YB[>6T3M*Y(J\ 1F^'1;JQO2++Z6Q2+= 68[2"B
M/A[M[SPA7+P/+'PC R5XV#?A-9CH$<)&&X5V^>-SOGYWKG?-W1! 3!!;CRC9
MH1%XMHYK!?90M +#L\.A:!F^%0R50VF8+D'*>GY%J1FH[BJ%ANFX:TQW<.$^
MY:;UK2CTMF:6X;CFWH,TM1]X-GGHQ'(&&,[3H,);**&1PQL:@1:0JZM-DF%K
M,L2D!,'.2;%-.N_Y4&A\7PB\YY/W%/J23I;A:,AE8+G:G-J^O^M$]<#&P#YT
M0%,Z=Y"RK<D(G9I; 6UF1>O7"*7S8'ULF^]"^UM%" )-)-HT#DIAA8[6P NV
MG_#N:HP"QQPT;62[4BL%W3%M+LE@K638KKEE Z&O@/1<>K[>P@_TOFF'J2^%
MVF]HG4T-MV\X-%5($%H33R] &'IOH4XU"V2?P^8MQWI/])Z!7)> Y:WUO2X]
MW^#V^V]5#'K(IYVUCJ5TUP:6OCZP'^I;6F#1EWMO;.QOO?N YKTN-R\X=$7'
M\,S!Z* 8@>;YFTV0K@3_Y$EW*\3>ZWUH.'+0=X^/K^^TJK6G ;P?FF[NK?#
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
MN5'8?1T=P/N511EM;DA ]Y7YZI]02P,$%     @ +G..5%>L4?Q  P  50@
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
MM7LM<RWJP=NHG](D"N%$Y3U926LQXGD&B3^ 6@$5 O(U#>7^7-VC[@24JG+
M D5.50*:S+_<QWZX:S6:#7KQVV/L_^OAAQTE*5&OO5X:Z@S=4XM*ZVTE^;16
MHL?P6L\OF%YS2ES@BJ!1?SP,0-<:61M6;;PN+94EE?/;@OY64+L .E\IFHG&
M<!>T?U3SOU!+ P04    "  N<XY4?#[U&I4"  "S!0  &0   'AL+W=O<FMS
M:&5E=',O<VAE970Q-2YX;6R=5$UOVS ,_2N$!^Q4Q(F3KD67!&BZ%>N #D6+
M;6?%9F*ALNB)<MW\^U&RXV9;F\,N-D7R/7Y(Y+PE]\@EHH?GREA>)*7W]46:
M<EYBI7A$-5JQ;,A5RLO1;5.N':HB@BJ39N/QA[12VB;+>=3=N>6<&F^TQ3L'
MW%25<KL5&FH7R239*^[UMO1!D2[GM=KB _KO]9V34SJP%+I"RYHL.-PLDLO)
MQ6H6_*/##XTM'\@0*ED3/8;#3;%(QB$A-)C[P*#D]X17:$P@DC1^]9S)$#(
M#^4]^W6L76I9*\8K,C]UX<M%<IY @1O5&']/[1?LZSD-?#D9CE]H.]_I.(&\
M84]5#Y8,*FV[OWKN^W  .'\+D/6 +.;=!8I9?E)>+>>.6G#!6]B"$$N-:$E.
MVW I#]Z)50O.+V_L$UI/;C=/O= %99KWT%4'S=Z 3C*X)>M+AL^VP.)/@E3R
M&)+)]LFLLJ.,7Y4=P71R MDXRX[P38?BII%O^@;?-_+(X FNM54VU\K @U<>
MY5%Y/L(_&_AGD7_V/\T[#@VIP1F\?W>>328?86""2P_2AD8&9.@$*%O\K92O
M'C":023MT.P@IZIVFK$ VL!&6RUOHX M4<$OB%'HR*L6$+!,IXY,,GKL.1"5
MRA6M<AA3D3C2Q )JY<0JBP$J6FLC1F99(XW5HB[1%-'&RJ#$$\F7"#M4+F0K
M#^:?.KO"8@@1QB>@P)*\>;FVVM&3CHL@4.)SCBQY.: UDT%IY;X +1=>*H8U
M8E@:.;D025NIAGVHQ*$X-LBCU^X_/1BD"MTVK@L6;&-]-U.#=MA(E]T@OKAW
MZ^Q6N:VV# 8W AV/SDX3<-V*Z Z>ZCB6:_(RY%$L9:NB"PYBWY \D?X0 @Q[
M>OD;4$L#!!0    ( "YSCE3B< %MU (  *0&   9    >&PO=V]R:W-H965T
M<R]S:&5E=#$V+GAM;*55;6^;,!#^*R<F[1,J8$-"VB12TK7:IK6*6FW[[((3
MK()-;;.T_WYGD]!L:K)-^^+7N^>>Y_ =TZW2CZ;BW,)S4TLS"RIKV_,H,D7%
M&V;.5,LEWJR5;IC%K=Y$IM6<E=ZIJ2,2QZ.H84(&\ZD_6^GY5'6V%I*O-)BN
M:9A^6?):;6=!$NP/[L2FLNX@FD];MN'WW'YM5QIWT8!2BH9+(Y0$S=>S8)&<
M+U-G[PV^";XU!VMP2AZ4>G2;3^4LB!TA7O/".@2&TP]^R>O: 2&-IQUF,(1T
MCH?K/?JUUXY:'ICAEZK^+DI;S8(\@)*O65?;.[7]R'=Z,H=7J-KX$;:]+8T#
M*#IC5;-S1@:-D/W,GG=Y.'#(CSF0G0/QO/M GN4'9ME\JM46M+-&-+?P4KTW
MDA/2?91[J_%6H)^=KS1^7VU?@,D2KIXZT6+&[32RB.TLHF*'L^QQR!&<A,"-
MDK8R<"5+7OX*$"&I@1G9,UN2DXB?F3P#FH1 8D).X-%!*?5X] C>K;+<@%5P
M+223A6 UW%MFN=-K3N"G W[J\=/_SN1I',<3<GC_+B=)<@%OP_KKF%[\\XQ9
M[;#X?&(/U[_;N:0?;A*X5,;BT+2=Y1KXP,3Q,FIMMTQS2.-P0L= QV$ZFL!U
MIZ6P'9X[H[5X=FL#29AE%,=TDL(7CB55J;H$T;1:_>@_!^08/8_'!X*%-);5
M-2^Q0&RU*PVN'=J(9F[,4E@8P]&[PR>HH5#HHKN^^C.2PF22#Y+2+$S'":0D
M3#'4HBBZIJOQ-918TMC=\'EXMS_IQ=2-1C&0/$P(/:Z79&,<XSPYIC>CR"5.
M_DXOB4<P)J]::.K%TSBDE,(M=O(D#O,$0Q*,.=G;O?7&HX/.@>@;WQ\-IJZ3
MMF\BP^G0@A=]YWDU[_OW#=,;) TU7Z-K?#;. M!]3^PW5K6^#STHBU+\LL+?
M"-?. ._7"E_^;N,"##^F^4]02P,$%     @ +G..5,X"VBI4!   S D  !D
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
M1W,V+$OZL:'Q /J^U-2G6\,?T/TJ9[\!4$L#!!0    ( "YSCE3::V#5M0(
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
M]XR[[%XO]^+=&_ KN":\,;R ZGCXYG2@?/>NZA;1U>DM,W<1A$J?)9ZB[$4
MYPN'V[1?B(/=X_;B/U!+ P04    "  N<XY4ZXM$.1,$  "="@  &0   'AL
M+W=O<FMS:&5E=',O<VAE970R,2YX;6S55FUOVS80_BL'#1M20+/>;3EU##39
MBFUHFB!I%^PC+9TMHI2HDE2<_/L=2<=5G)=A_3!@'T0=R;N']\;C+;92?=$-
MHH&[5G3Z)&B,Z8^C2%<-MDQ/9(\=[:RE:IFAJ=I$NE?(:B?4BBB-XVG4,MX%
MRX5;NU3+A1R,X!U>*M!#VS)U?XI";D^")'A8N.*;QMB%:+GHV0:OT7SN+Q7-
MHCU*S5OL-)<=*%R?!.^2X]/<\CN&/SEN]8@&:\E*RB]V\GM]$L16(118&8O
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
M%;L2G\FN 70/CY13VNB(HT,UT16-J.*?+3L8O:S ==&"/XKV$"U*<!R_,Y=
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
M[QH^U6H/\2SH,8I@AY!+A1D(^M=DX@IC_3N^G:$Z:8XJA\H:5U'AUP[ZOL
MGXP6C %W;/88S!Y:LV 0+RXC$(HNJM0;J(-L)L_1@M 92.=J!$;+S='&85I;
MZ26Z&^C+2TA-6=)=<QR%6] 2K5&S( A+G#O+M.Y02V/!<(M8&YM1.)Z,:AU
M:93AVG=.8+_M)1N[U,K*-VTA11KR'FWMA+5"\XSY]K?AD*,[<ZNL= 1L<BB-
MY5B$!J.1%S@N03*&PB!H,CL+)GH11_1O@M'WN3&9(8=YI-=H2CC>;)#.)7G)
MB *7?@!_%,A9/-$NQ1[6V/HXK(0EH:@J"/*($('4[18-;*!#:Z(T-1U):?44
M@$PQT*&@P:,M0X;7[. IJ=87[!($L8U"+ZK)U56EFLL3N(+8;"QN^%1)_/EZ
M!:9<'.$\UK83#4GNCR$YHS)8[[G0^G1@BM8+/C\'4].T)JVU9RIY[>M AF0O
MR FMH[*JK:M)3@Z!D_=Z;4-6!S[!:OJNY(8%%7$T6</G;7?6,55UQA!"[TE2
MU%E0@!TM>A-1KOD#Z& KE.2; DJ6TH<4DT]') KN(H:U5(I*9 !?3%><0FP1
M]I2+-:)NY/GQ*)MTG*ZF%VL5,NL.J67WLY(FF;WS5 YLWM=UN:92Y'0UNY0*
M7YC:D8&[O DM9#1>_.]_:O U??Y#CW]MW&\//O&Y;!'XR]"=Q-T)JZ.HT6-$
M*FZDUAP<@>Q16)A/HLGUA/_BZ0RN9M%\-FU:KFO:6W9#7P>3/H$)=[BY+.'\
M<#T=X#/:-#219); >#R'ZRE\=)RCIM;/%0YM/5FT_[/H>C2"]^FW6CK9G- /
MGX#QY0O;Y'IVB@5UUHWBBNB?!W.4X%ZX G*J <?7=BOIJPRY-26X'XSK<%E8
MY*A1EVV#LCNJ=A 5X3[+LNE!%\G@BMXEH9PCN)@-DN,LN%W$@^EIFQ3A6J5G
MF-H/OO?M'78>,B7:37BN<>>F'M:\:=K5]D7XOGD(G<R;Y^1G83=\(Q7FY#H:
M7$U[8)LG6C/QI@K/HK7Q],@*PX)>M6C9@/9S0WDY3/B ]IV\^@=02P,$%
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
M/<'U&TN1+,_BI)#&+%IO:35>LZ*9A+(!QW0;V752V7IY3RLQVUJRF@*9K&2
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
M+I0'650A*PLRS<.8K?RXRMB2"O! Z57$?9$YJ-4*%FF6+^'J''7@7TXAT[2
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
M;5!@>6FXEOM#<-#_@1:_ %!+ P04    "  N<XY4(,$SC!DO  #.J0  &0
M 'AL+W=O<FMS:&5E=',O<VAE970S,BYX;6SM??F/VT:6\+]"> _8@%INM>W$
MB9, [6O6@V1MN-N3!3[L#Y18DCBF2 V/EI6_?M]9]8HBV=U.-M]BL<#NQ"V2
M=;QZ]U4_'*KZ<[-UKDV^[(JR^?'!MFWWWS]^W*RV;I<V\VKO2GBRKNI=VL*?
M]>9QLZ]=FM%'N^+QQ?GY-X]W:5X^^.D'^NU#_=,/5=<6>>D^U$G3[79I?7SI
MBNKPXX/% _WA8[[9MOC#XY]^V*<;=^7:3_L/-?SUV(^2Y3M7-GE5)K5;__C@
M<O']RXL+_(#>^%ON#HWY=X);65;59_SC7?;C@W-<D2O<JL4A4OC/C7OEB@)'
M@G7\0P9]X.?$#^V_=?2WM'G8S#)MW*NJ^#7/VNV/#YX_2#*W3KNB_5@=_LW)
MAI[A>*NJ:.A_DP._^_3)@V35-6VUDX]A!;N\Y/^F7P00YH/GYR,?7,@'!(C'
M/!&M\G7:IC_]4%>'I,:W833\!VV5OH;%Y26>RE5;P],<OFM_>IDV>9-4Z^1#
M[1I7MBG!ZN&'JLA7N6L>_?"XA5GPW<<K&?$ECW@Q,N+B(OFE*MMMD[PI,Y?%
M SR&Y?DU7N@:7UY,COC7M)PG3Q:SY.+\XF)BO"=^ST]HO"<CXUVN5E57MGFY
M272?R?^[7#9M#3CRGQ,3//43/*4)GMX'J$.0G![F>NL :U?5;I^61USMJBH;
M6'"6MBY+UGF9EJL\+9(&)G! *6V3I+5+]CPIO)*7R:<RQW]=X2M-\O!?_^GY
MQ<7YBT]7](_%BT=)5A5%6L.79:9?[^&_]#%.7F<PBP.L;+?)QI6N3HOBB$_<
M'@=. RSW=0[KV1<P#WS;PN(_7?D9_W)Y^<'/B7/A\[K#E_&OVFVZ@L!$<,.'
MK](RS?*T3*[<JJOS%D_I,@,2R/&@VDK6+/.8E_#7-U]6V[3<P"C5;I<WQ$-T
M*5=O7OF5 %NC$7C7C/PP_ZV GB=X.,!PB@Q?AOUW,'-;)>[+WM6Y0Y"ER::H
MEO 9'%_F=CD<N2MH1'@/)V4^ZO?[_F_O7I\MODMN\KJ#H\+?9,4?9 !=-L^N
MOR;;M('_SY(L;^INCUPN<>LUL#TZ"#J?.N=3.6SSU9:G8[1*@+_7B!LS#\UU
MUW: "#D\QR%D>7XV0A3X$+ ,.!\>O ,(5/B(/R$T IS:.$"4KOQ<5H>2#SG=
MYQG\YFZJX@8^G">7#8T]-I5"E@"+'[E9XIHVWQ$RTT(:$"=[QIMT"5)'5^]N
MF!YX3WGM(;)*R[)JDZ4#WMVZ&O )#H2P>^7J%L18>]2O0#Y4,%3M_M'E")!R
M!>?5P.M_[[(-H@&?0P0OHGI=?U?JF A^.(@B$[ 1=25-OBGS=0Y+:OWG3#F
MCE5-]+7#XR/0P%Y="^=4Y.DR+PC79_ B;!0@A$M&W"L;3WZ-\V<E2[P#6K_Y
MDNZ(A''"0-LQU'7_>'II"^+HB/#D'<#(RV-\C "XHLO@[)8=(P<>0)'O<J:%
M%WX3-6 20 2/<T;#Y35.@VO95%5VR(N"Y@>  G'GR\()4.C7?5W=Y VA I(U
M'%:6PSP5O $;>]_5L.5F!?L]NA0> V- ,FT0Y&_=LNY *4D6  SXOPD9\,S+
M@&=WDP$!Z"-"X&O&(<2[71P(Y)FLAUZ <5\[ $JM1UL!F Y;D G',R!;&+?I
MEDT.?!@YR#SY%<BFHO/;IC>.<.L&'J5X%' J0#(-<YV37Q.8CW 6J!Z.D7X6
MT::()N1:IV63KIBF:9:E<V7B$&%*VFH&G#Z2AO#J?.+(OO%']LTDJ$'- R4.
M.&97UX :1UY*,7IP7S\:'1](+1:^2=ZH$ HJF/],Q0/#"GFFQWC#"? U/#M[
M7$1K.BM)=."C?E9XW-+(3F4ER@$\.V:5^A@D&&D ;"0@LLV3CTRP3<QV;IFN
M:_#4LC1'$6#G1&EJ8)-F?P>]E_$S")EU7>U@/0 JH',@6YX.,*?;=3I?4B'7
M1M(&4&[1=+@AMEWM7/(0&0&H'@WR71;VCMZL2F$QS19&!-3/7-V@I%U\^R)!
MUM\"T-^7!%E@.RU24)'#[YE7%U)D.'38+$V)?[7;WOAVK1,+)24!=TQ: AP"
MK+7-5QTBRLDTB#K"-7]C$+1]QA!3N_^R4>%5$JG!IBS&N134!$$I)5R<*VB
M.$]1K>QW5K_PBH6<K1(T;!)?IZ7*AX2]! _8;CDT, *OY'4<Z=AA@S>N-JI4
M[P-!7<-*!''!,G$M,OITF(HRAYI,J?BTCFE8::IV9SO0!+I:L7Q\"5]!7,@>
MUWWF$:8DB;@!I4)63_*-EB7<GE8.VQ2$FB=O1<DEN>?0*$O I")YIU;5[-89
M<1X\B'\^GS\!0[0H$*B'M!F9-7G8FV)!RNQB\<*.]%Q'>M%?T?G0Z]_HZX^F
MV/VWGMU_.\F@/X&"A*BNJLT0B[_?"&CO ;42NQH6QXBYZ$I!1":E$^TBU3 ;
MT*3*=,/P!JS:I9_=A+Y+S"%E=,+C5561?Z^-$CG$%H;-QS*++4Z0] [MBA6<
M F "">]V6W6;K6B8$^IX[<A?DJ&"%38FG+4!J0Y* 1H'A<LV!$=&O59T]QEZ
M;#I8'\N 1M7,+(<MTWLB$LPBB*?95<V,KCJT0'>3%AUS9+11X'\W%>Y[B5H7
MJ3NX!6:#?J?P*L@AL$!SI'AK\94T#NH^5:=,[>3(#JC1%+E#_8E.*6V _Y(R
MV_(;,)&;B1W >P?H,&M%Y!'.@7HA*KJ )KADLU$RA.C$T[JF<\1M.F-%G# ^
MCS2HVZ%9BE(ZW:,K0"'-VVD %BN$])O)D^_PX \@VJP5@:L%I7_7@#"%O: L
M+I!M1G;_'L;?(M#W %\7K%(P!G@;^"(R&MW)BHB'L'R).@;J!H#"2V3CR*2L
M0CG#A:T[E. W#(]16P).54Q!I,X]@G9F+!66XP$IF V2AB-V)<EP6#DL XTO
MV@CJL!M2-F!MS5ID$_P-LY&+%=&H6A;Y)I7U>D4:J3?/O'I!N$8G8E[W<(7U
M9]T*3Q+F+M7' L(^0[H"H!]H)CR0K.J6+8)$M? 93%6@UY2Q@\0OSP2:ALMO
M<#7P4L_< D&'@*]P/<!E'$D[).2J/LY.8"+:K&<&9%LCB(&@EE4-G!S?1)F)
M,&_:&C;#6C^L$DRU A808P30X^KS&3,<9&"@5"FD#&JZW;+*\L 2F?Q5C>/S
M)RP-QB?^VC1\_'U<9E'7IE\<G92.Y0',@V4.&!9CJ+[OC7D@M2+_S2\!0<:Z
M+[W%-BQBK7H2Z.=]U>1":G2NWFH6.Q$7R.K*/+DR/H:(2(T=WZ/8_F&AVINE
M!:A.H#F#_&5?'Z"/]ZA=!=_>."Z+^",O:R,N%W)P@[X])<^?>WG^?%(:OTJ;
M[9 ,O_VKA/['*S+;?+,%[L=*/JAF($3/$"( &(*\+![X_R9'Q7F'!.ZML'9;
M.Y?LV 4.IP_$,KF][_SVOINV)[W !M4/"()X_=!^OV*8Y&U$2^O!=ZZM0#%^
MJ2%Z7@% 9\&N#XPC>0BL^Y%YM$^/^/N,"=O%4HF=/8'(]&V43'7UA5BO^/<,
M-\C88\B_T_&9(YHGKT%<WZ0MFUQA>[\2"< 9#SXE=0QU&#$)DSIO/D>V&EG?
M:$(.,"'2)&3+ZG-NX@D&W.V75Z^2ZVJ?KY+GBV?J"PZK9_#\&VA/L *AO^2A
M_P" S"J#URY)QH,  RU[<)>H72$SJ3/6ATX-%) L+F>MIF06AAB>^C,[)MXN
M@JF04LRQI!Y;6#%E;P!:/,&KE#GTB>*I(CA'S@+=W:@SJN;!4H_T';*U")B]
M[P=16JW\L$BU[ZQ%#583LD(UF"-*$610MF9F)'/9N)B[%@#T&Y&.D12[*G-%
M4)-Q#__H*M0L=FG]&<#K9\+]H,\2WB(L:Z9,2/4]!>L3L?575CA!8:T:-IW7
M@^\MW2I%4K!A E6BFJ!C35KPWN\#%@.A->R\ $4 MZ%*+3EPR'YQ&2LTHN+K
MCRJEV7T]0\=R;$^O"]0+8OTQN-68.F^4&82($C^?):ZKJUGR$AD#\/\]4">Z
M2UQ-(@[7$VORI]Z >?).W9NT'@+?:P=T3YJ@G&A[W-,1IMD-G11,X]@B3V_2
MO""&!JJ@]^E[ERF>-:*VUXA0\A0%@@B@4&_0UZZH(W29/^)MIDB8  H0U#L&
MU@O\)8?G+]/RLZL]J[ZD4!XM[.'+RT?R&KP7 /ES568P!>UU"5\G[]$$2S[B
MEA_^_.[E^X_RV<TCVA8%XV!9[X'7E!@63T3J $SXHZOW;S\^F@]@9![!,SI?
M.47WI27U2$TI@@U"@"B$G?X"S>,\><4_C.#_RCP%N4UV+0[#:A@R<50,U"KN
MB3):/OH+>69\D]@V<+>NY4.-F$[>=L;Q5J2KSZ*NK1QR#Z^%#@A-LK\P7@1$
MY+S6Y&TC,-!!YVI4 52E"H4T0#PO,_BE5GFZ<=6F3O=;,EZ#];4#Y-LHXS5P
ML=RY:]CEKP@-LZZZ8H+!SHQ9A,&?./!SRGZ\>C@3FH=_-(=T+[&)/6O7&U"P
M9/@@EG'9)^.1CMXG4*):(,9, DV'$-.@PT1_?-.-[(BE=YW2EL!4151"8]@H
M!:=H9E4&13/5Y\=4AN!6]Z9Y$#W9%/._-FP;\P#JAIV4L@HC%(,V'HYI752D
MTIP1O.0;V/0AK3.B07)'DPNX6J]1 R"CO4*B1%CU6;+N4T*0MVXW7G]6 0#\
MT5CIBN=@\<^?Q82JO3@/63'GDUKR!S5N:1YA(C^3JW4P(^:K1QMG2N+8108.
M4H@\[H%!(0:Z05:!A.+5$;8R&:3[:!'Q)..J"BLH<([&XR4? ;:E1$KB!%%S
M<6(B(C9U9#AF7BD[_U@OU&VPHF#F/("0=F>(<9[KF:<\R0&4RBWK)C*@LL*9
ML$*1XP":JD;;>$LA>4J#6(M.+@]%E9S%_D5@-@!V4$,ZD<1IT53RJJCOHN>P
MZLTA?^.C+4#]+E2=$Y((CI1)W#4978M);'NG;I=!3+WCMRBQ02F",\+(>^-]
M.1H"(:>Q9T-%=4!'%$HSX+1X0.B@$]\&8B5QK;E$K9M6C,QH@@@%O?4AP>\4
M-(ET$S[NRESQ.G+A&)=38&DD(F5L_Z;W4@7?E?EXQ".OB&#S9#*WPPTCKN.A
MBN>-?03(WX%'Y6MT.:%7%_A8G?]&2@ 0OCA*U)AB+U.T#<$C<4U@[+)V-YCK
M6*T'<7JFRY$-B)A4=V"1KP&&QY7PB0RQL2+79K('06+>1 >/:L'_Z%*R[4@L
MHO1<"TB'-P[Z!A E4LO!B4L9$ 0H!!06Q 6 ([J18I1:5C=ZNC5B%0@88A9$
M]R &#J4!"DE],H\&#@\Q";\"@802:I*F+@)-74S3192,@KLY0P]R)AQVD-)^
MUXB('BVJ+:=/JEI,[PW(@SUJ2,'I.^"TIK^0V ".=/XG'F\*_I'1BU0FACQY
M B6+"MEXL*Q7>;WJ=DW+#DX];8E<8-:430CB+8(>'GUDN2-HIAO"#47M6]*%
MOH_2IL"F @4GLOR)<?A 0,$$2XZX#>HG3"@O?+0)HS>5:/J@_!S(A<U1<L!_
MD74<3]!,L51DSY&/CMX@/P@JH#!0&_RPG1D$H%V!/MGJ,+C0KO'2+_A3PNF^
M8.,CA,9 2UI)AH@"?/!#%D\[S%\K\L^.U =@,Y+ZUHBBBX8#J1VPA"5GNY&\
M*^D7]-\HQ\M"X&2-,>K2NL@I1!MG(A#Z6-G)7!M#B:BR8 !2<M(4[II<(!ED
M@M0#.X.)T*<:? T]I^0\^<7$K06X ZN-O"Z2>Q/\+6QJ[MD/<;+6>?+O52]#
M[910,2^3<I= VP%<("$@A%9+P)R].G?(UB 2#8J*365K0L;O)+,+Z=&+)Y.L
MZ2^3N7:#O.[W#)CXQV Y\TX:S9TPNEPO+D@)E(/Q/N1B(R'#,/-P%J&$$N=A
M23F;'TVW_#OI<!4B&1A OP6_+K'I7M HRE@$E',IZ45EQX93F;P'+K2$=3ZA
MC,-W)TLQJ<*(([0R'_2IC9^6>4#L %>^$#X2T_!T'LT0##X%;UU+<$G2LK<Y
MBIJR*L_(;*/D*9 .*>D7[@OP0U*UW&I;5D6U46\#&RIENA-G61_BM5. 2@P^
MP>QN]!F=(1:I!BA'FM=##.E&,A,C72&>J2\TE8];N8@.B0!#S\#T)"+F9;B6
M2BC/+!!', !HI:JGVS@B/^\%7FY==JPE YO4-:F>ZU>ARQY@79<&@]46.26&
M*-NKAVZP-=RAQFB;[RDZ<?[DQ>A_7]T%OY*KZ.SYU ]5\F80O73H@8_6N*7K
M@'I3[W*\[M^'$'ORLT,UQ6Q#J<ABNLCCPZ#2-LADOV:@9.1GD=9ZIJAYSY,W
M9*BB-R4D1',V%AONI&-EPI \VNU<NZW8#O :Z+^FN_T+,YU/U<D<:&0EI]BP
MZTH^!SS,D/VC@D3:C=1(1) ??W?I0.%'<EL7:FNC7)5P=Z1BA>1.K5M8 IZO
MR:#$+'$QYT63')DR;ZP?(S4?#63-2](?4^S(N[YZA@[*JP[I?E^@W@"014L2
M#Z<XBB%]EW5F>6;2M3$."NHNNC1]N8&-R/021%_;D811C!@9?S"W $KL\#QC
M*Z:IUNT!^>T /2X0"Q9/1"-ZV]7 V#7M9IU_(6?R%#T_H>^?RO<_8Z$'^1P!
M4#6\P!QKXGM42=D'8A1EY-^4.8#Z(0Y)CF*!6 FZ7E'XZA/OM9]<)"]/7WG;
M(;C]@;NQQ"51&785:J>>%F/GL0J\8\]F!_R"'4UJEJ$F8C%=S$!@'=8@[_)A
M<LGX!)3B/%VGP=UY<.)'P<UPF#H\S$%/J4C;1G\TID')D7@[0#\2YL&?4:KQ
MD172FF)9Z*+%IU5A+;@T4O-9:)/.K@8FLB#T .4F/K'F!86\+HXI4=%#EQ?D
MO>)%&K%)Z"*_HJ<-)!?_Y;/-&_4_2HJ\6ESH,I?4=V0B;RM.01^@M!L'WQ>.
MIV&W+:V*JFE%QXG3&6Y9D23><P"K]Y V[6U'= 00VE?K,X2M)AE]?/\I%! 2
M>-DTYL%"!H*Z)'4.JO*AC87P"(PE8^2H N<2T/#)"Y%I*,_%NE11<C(M52T(
ME-%0XQ?VZ9%/C3S'*6ETQM(^6=\LV1==0P/HO!F8)"L6T29_GA(XJ0S"SY53
M))&B(^Q)1TOF>ALIVY97:$ UK4'$U-[H+7U)8L3)^*< N>C8B<EQ@<>HU$X;
MKM_8H9</$XH=B0H2V$VLO.Y3E.:^%+,GQ;7$[U1\7\<+\FY3)L&&-+M:Q'"I
M\42JVFQQVWF4S,0ZDB3G'GT@BUYW]2IOQ.?%P]C) U8,HY>@Z*#/03;7PYZT
M'4,78Y0$^,=!3Q!A6.7<JJK 8U?UC#><RFNA,E+S?X.I,;MGUB:5=N[$68]J
M S,2#;12R /IH0R+XV3/@S!4,DG&1N_3)S<GH-BP3Z@@I;8'+01 /[GQY!!B
MR(\>JSW,8,&2!SN<@_,*M3\1)@:PA44']^.H_,5"CB;2$D=0HLX;7Q@5*95H
M_F;N"_F:"*B,UZ<##YVI]=>UOJH@LFZ7SN?A<2H+NFY!AF&R/H-Q [8#&%#.
MD<CMD95WU9)4L&$/%<" #>0Y\726>N_/C&F5<QU8N?)^'Z'#7]5R'SBU .\9
MZ0; 2AL00B1H0]T9G2_R:^&0/0?C"2_D73:19P]0''@2^9W)W[B^TTA!\8<E
M=BN&]V^NKH)B8$4P& ='P6),)==RA"S'32"AP4M!L/I9)/T_ D^N,?60[BHT
M2QQ"[ ?#7&'IBXM^GJNAEH"HIV[O1C6+?KH=:@D^%^!V?Y!9SZ2"&BI %]-%
MFQ]/*Y$'M=5[CZ(EDSTW>;?7 H6U!E!9L\0T:B#LO/$!4E+>ZIM\Q8T&@KW
M)"\(Q>S<"M5(OT3^RJ0LJ.&8.<4J*7 H@.K)M(2#E%'""24A?81F71'C"07'
MF4/7'+N^-)'.^&D;=9(2-CXV\UCM-1B5JW1/+(="%90[2DXA5/LYTJIJ.S (
M[VWSB1 AA4M5M":4@8XDK(,0\_'0L#SRP>G4>9QG0# 0=809<TXV-K(Z=$LB
M;*L-,SG.(6^YKD+J;;ST K;$=38^VT&P@5B2X@O^CA#LK2[H^-XD"5ED/*.,
MYN-E"BADX<"B$!.($?HXE>YP3IXROW]_?@$WN3[3ALMXRE,L1L]'$4Q./RB9
M"DL0+84O_Y%6#!PM5S-B^-A$Y8TK-:R1R)Y??V2,NV(5)CLL-]Z/#MZ$S("T
M--5+BG"VXI3C%*@N8C&MW]WPP+%*<Y*M0%F55Q_F^#]<;G.7,2E&$G S6,+$
M9'N"7I9+:944F#59IFKC23+#ZA3KUB2TD:C0:6(QL(3CVN681AH'CNEDJ_#0
MEX+ ^>5&#_%*:&/U$5ATKVO$;[).@LR] #(?8<X8,2++_BC5!U(7I3X4OV3+
ML+!,'% $B(>LFQTF(M!&-RBT2M%GTZ[%3)!6<HA]-J)H'(UG?,E>.A3-X@,8
M:)GA7PU@V*5_1QL?P+B1:+7O%V+KA9?8G&N>_ PGB6+75_>O.43,.%;P4_X5
M>, >-T=V1 +B@F*7ZIYC0[/.O;<)CF/OB+GX43:D(/H 5Q!GBFO>V:+V@!]>
M,TW"BFO?CP"+3G/RJ@DI!14\$V1/8[%0#YZ]FFA57K+=A*X;'Q/R*,3M"-"6
MR:SHYKB1.FS]RH%\E?==]64=18P"%-C!@O9]'[BD^Y@]D#*&3(V*/KD6=$\)
M!XUA'OKY+%HR*UB L:LZE^1:%L6&CV'.A'-:$1MP \^UOS8[5",9_6CYE$2(
MU!_BN$<U%6A#CLD'19$V)4%^_%AHP<!92)[U=,$8(DNWR<O29.%G/DF%D"F(
M2_;,>-&K.K\7>*9_ 4*B&=M'UE-D=0>T9M*3\6U:<\3L/3)U3>H5L%034^88
MP5GS8<)1> 3B",M[$JW1&WU!#'Q=,CS(E4+=-*B[3L'&M1X[GCF;Q7Z$7A Z
MC,P5LD*$U\2OHFF-UF:2/<ERO$WI8C<1J 3J(XC< *):1?KOTATK;?^328DH
MY8=4$>;/)\!T<IIT9D3SC,0<-6GD^";PDY"1OF-Q%4TC6T:WW%N.E@VL)VC5
M=BWK_ MY]Q%G:1&S6U?0RV^IJ.:*.8*?S*SH8Z^TV< 8?LMWRZYN0DI-G6(B
MJR^#]IVG3JEU4Z/]*X +#LRYX*YGW6HZ@,J1'=@L#*VMHO 2PV4V?@PSYM0]
MAJRJ/)K8JD+7'-@7#H*,H_'=1@ P*Z>EUZ(HO.]J<T"]P T@F@LFD%>QK<;N
MU<L!Q1E9OF$[KXVC2ATCH^JV)[);5$(QU9JM:GACT8$$T^JZ)I@KF-.GG=!"
M_[._:@4Q'B[F0I?.B0.$73OJ"5,?#)F-A8G16@^,J2^_1^&RK(HPUBN+JC'?
M65E608P)/[R':#@3&U(_FGI>&:3X42,\3NR"?B#!UZ/AN@0IU3 ^/5EQ9/62
MZ^%3<I)2;Q!?0S("JC@%.G2,H :*](&U+X@.BB/K#WMIQV@+BBQKTGUIGK X
MH+S2J#TZ3JR^&9EW6+X+GTI24H)>LWKX_"0/<=P9HC4%1-NI=)+$$$Q:'''#
M@\<8@]T:I=+7#//#X2<B_['Z=Y\)?5JM<CJ(XF)J^SGUS"C2\4O_:K_[TX"I
M;[.AF()\O")H-)&#G,39%S"ZJ,##+# O]YWR-#H?()JHKX6IMY!3G[&_FR-6
MF)(-*E?H(^E]PCK:' #5<"UUM23$G3#+XY!@:2*J$@'V2@$'QBBEOQ4-9F)<
ML%2-#TSJ$91P?0ZT5O?A.9J$*_85*-6EW.I4@FZ(HF#4[# T(%51-@E?9EBE
M^[S%L@B)S3713[*8."N.N'O31NX8$R +WJ!8<?6P&A8UH1,H0Y9%>52QI\8F
MJ^?6D^2A"S3N#L#XI<3(1[I540N#Z9N]%#:&BI'MKCV@^YLRN%[%=4PG36MH
M3G8SB^R6ZJ<L]QTGK'%I&!B*LQM,</+9$*$WRX!M35RJP3X$*PZ(!ZD/"["V
M"R7@!,>GKXHP/.9%$EK5\6BZ"80-5\H/ZXU<T(@>.DH#"7DU.B6< V]#.3 .
MH3 =\AEP(NQ-Q5P\-"?M2M$^HYXOO<(RBGOX[B8R/&J2_A/-0*#.#J24#6NM
MP%#(-VK6LI0>1MX/8(#4E?Z0@0$\S.=N#FLI-1@"J].J,LJX\%Z[[)%XEZH5
M:*$:BJ:J^D)*'KPMRR$0=5?$KH&TYQB@0TIS28(C*A"R"9$*<550K.($LP7P
MW#!)6FL$+0)%V&UZW6D@Q>K/1A5.1WS:5B7NL1(NQ0A'P\EOW&6&_-O1HK1;
MT-A*R7U$EFGA;-,:]3_O<D"<MBJU_X?);Z<>$FVO%=$I-'TCRK =\[Y)[474
M0OJ@#B,14LV,34A!FK![[]]AVV>BVTWDE8!MTT @"'-WHTH9(6:#.<AP*I1B
M[K=O]F697B@(Y17H82D#BN,]F@C2\U@.0O:4DE_W?O&)@M%H(=07\T'R&?3Z
M7(G T8#@,/ >-H]"<G!< UMQJ^X\]BPA2BE:@'5IG1BGFU!:H19L$:5$/&D
MK:AD;G@PZ;1769WF;'D\\\<O!G!K<VS(+@G-4,3A,Q7(#+T-%].M"3_"N:;U
M:GM2YT<:QF!,\_<,F%Q7DH^BF6*H!EO-AB+_]*IQ,-1C@X:&)YR=-N#[?17G
M0ZF04U>?6+K6\(]S=EGS"!GE3.MK4*!#A<C !QBKHX)X[Z&'_7 4VCJE" 9!
M8R;-QOG(=N:]7!Y6]-@8<I-H$%IB+::[6UV-=$7C<L]!-/@] R;T.'DO]N>O
MCJF4M&5Z(BE7_#("$7,%'4B"ZNB<9+I1&6NU!C!0:$6?-J;EG8HM\1%BT$CG
M1 ZAE4(#/7/0.2F1!Y3C9<@Q8=^:PV)79:E4#G*'1CR^1DE###2%J!JG@_2J
M[;V/!'/B0G.UP:G$DW!]]1_!K0WJYPYTPYS]-IC>YT+9LPGPR:+>*+3MB5CW
MV@VUGN$HPQIDQQGUC17='FSAVO9CEF%Y(ND&C2ZB!MFC9"L/O,IAY-.#U]1\
M.FI! ?UM;+U$0G!L-7;NX>63F.8=<'G']?:D<],0&'B%IN4&NNMV#%B; 44@
MBJTTN?NAI#S,B;J^7EE?Y""*4UW Q*OS9<=]HB1K['0?0\M'OI46*^DU'1#L
M)3:=.;M:;2M4@WX!.]:G39VI(X<:/N ] ++;FPH=09H_Y9=KG 'FC1[.TM("
MU?J^"]=;[L1RML:SB9(5>WUC_^*#ICBV=#;29@!+=/L?<U=D39QJ/60Q^^.S
MV:P"MI.VS*34QV1S;<>0[[B<NG>(ME&&3(4P4:Y3&3=F#RP?C#+$X9V/V/HR
MIRFOD '0=2XQ7TTC'8JU)O\1<0UJED L%SECTZ7<RT!JL,69(:M4FN.>)*"/
MY1(2TU0AP;!>E\<P3[ACYL/5IR:Z\65P7>']C^9]@ 7\)606J4Q"T)XG^25H
MM S/2:DV*;O=DO.J:#PB:QJT?VAMA9XDTP$^X<ZI?G775Q]MBTOV3K#7K]]F
M#%YEDP8?\\4?%(1CQ]3>4?H4YF=23=^<WH\I-EK:@2Z6<MF9[X'1%Q,B&]3?
MLZ:U2(LB$ ]-3R:$R"CQZY#N/0;.F.$0)-'UJ*H,)G&,:04^DT_-8.7./KB)
MHXG,:&^1&.Y@Q3AUH]!JEIJR.L548[LJ<SM3(P+SR&3XK4W>-;OK>U-3NLD*
M&\?5195<Y3MUB@>/YO\0/HE;_F_FE0R\4?[X,1"L+W,V$OBKE(A;$.)708*D
M#)AQ-W0H<;FRY@E\B,/TMVMG2H&HD]VBA]$VM9G?'T-*WLX-HB+Y@%P?@Y;+
M*JVY.E!5+;#4*[["*QBU?7D1DF=8Q_UK!WK)Q7.L"3U_.AL0)\/J_!VDR< 2
M@FAX;43#S-]-P3-N.658BV6$D*T6?SL#'3_)VWBI14?R1A>2%GAH-.K(,"#K
M<%M5C=W_S#>XK#BA&C<ZX]XW)8:;E% QQ&#Z9'E0ZN@^>Y_R4Q@PG,1''.6
M]HW)VL<F+FFSI?A5&I:X39O0^3!NL8%QZ%VW,]EWTAD.AO(7",VX"8W#%*"E
M9\W(*O D*"6!';2GR"B1+R(57<X.C&E,:'*A@\*S\W]1&"RYV@Q9#>4GK=6;
MB7R[L=L:@#'P;3P<^&>R[M3F:<0_AYWNV.')B;ZDA!,?4!]QM,R59,ESY!=8
MB:H<PSN=)W]C #.*4]:4:]N"@^94IN_93A\O!6,UN>%&>CXBC!I$O=5)0P'V
M/)L"B/NRM(D^@]@T^^Q*UCZHJ=Z1_>"FSQ0($]IKGQO] FSVX@DQHV^'F%%/
MMXT="5_-J6Y?;6!<KS[^C^5< YX!9&"TXKXSP".-7LB7"3!]O:@$O(D:(P.<
MS>_)&]46H0/Z8KIW^<N!=B_#3JRO&(<Z,9J"&G^[ 0#)=.(^?S;35MQ^F%=F
MF'XC[G-LQ"TLJ)>4WF_L0D5A/K^<DF],#-SDYA!CU?XRLQ#$-9=A:! ^ZJ:.
MJ2'.M(SI-XB)&F&'T*W2410"/FT8\M"T@-;%/3*M=(*;[&3>J)ZNW_PG#FC8
MN(Y7A213>W!LNZ>H#<2=@,54,9B//S&3OC+>8JA_SK?<]5.[35ISSUD.$YD(
MQ,QW*-?*8K449GHU1=02@L8V+6!FP0E^!$&_T<@1IP.$QD#HC@I/V&6O*5!R
MC=NOV[QPMH:3+OF9N,*(LIP[33F3-O&GAS..Q:>GD&+?048W$Z3LW9YRH#0N
M:JZQ"OU&S4()BEO*8:);3)4&*(TB-(.JW1I8 .?"77)[1@R0S?2.0M*=3#<R
MUM4UUTSZY'5[2HDIY88N;^OTMR:)7]I?([HH3X. =P1>J.N)$O"THV_E"7B>
M?%(;"CM5%YU-*C_=&6JL:[H48Y!D3J\ATH5B >'I.@50>&<!\FH4;WF->(U^
MEU!I$4'"%Z_X:DPM,;B#/]:D*+DO7+X9KI\)"7=TE[B_\0-5?MV'7FDI[)TH
M$<%A7+ZG31F0Y1E@L06<:VC-*C9!$#W%ICPBB-[(4E]3.S^8#3>1O _!Z)Y0
M@F_9)3?5'\+T"1D0EYS!G":;_,:5%E,)28/^(#(CE,\#(SJSB!U=5S,E(_1^
M *G5Y[8UU#"2X!6U@6TIL6IZ*FFGK%=E#>!R;A(3)6&MZ=!!FG/_EI!5AWPL
M;CQR\.4ULIB3?7(BH/>]]6Z]"I5EL#NJX&ZJV6F&9/!82=8(V70'%[W&"2NC
MP#@F#U$9-I<3283VD=2*+-5H-#=9\<0LV,:.C%!!>-6),&!LHR:/T5I.(5/+
MU:_U<1Q*Y SB_&M[:32@/]63]Q(@]=8W:6CT^[ DY<81/B=7JMN5(>]\AVZY
M5T53$#UE:.T7Y55.K>46F<+ E/G4M61O9YS&L\G1&0L-QY7M#:TCG^PI]6GB
M)BN#>\.W::GXXIND2L=I)9+B.=@,D@6Y=N PY#**M=*-AC@+DRY?67<+?!I)
M0_:XETJS+F"I[K,D87'BNT5'>X/0FC(3Z<VH4I+O[<$>>.-J#PBN"/$:-WEG
MV*V0IJ*HNYVW[_!@,Y(F]Z)-R6A/8SN:Q7TN!:OBYO+1W5#W"+M.)5=<A$L"
M+J;;^K\SLP]9H??X7&^?BOTUH:>;O3DND&RO"Y.%AG$'A^OF3M5!K T300\6
M?54CDQU*'26G/XRS)%]7-7J-I%A2>9V<W&!_YTM(N029^\%J.BK,S<7_F&^*
MR3QL4X6AI4<*10LTL7IX2Y&_G^,\KN2+ZXDJV)*Y'"*+J,<':?_8HR/XK@VD
MAR^K42L$BZ6I$]) >V:1UZ>#,DQ"BQY)(G]WVM-F8.G1S0O^D@/M',XA$O0G
MID7DC3=X9XYY9JQ0/1E^T][;8+MCDU<*N9#<TA&J!+#$'*%?]]$\(!A]6*0<
MLZ3:%;?AB^2UEXWG>?[V!C("I,EAK"@-G6M\SYR&6KC?A=45QE@JW0C!$</V
M4)T!H][[&&'LQ2$MEK%ODD'W;M>,29N"LF@()303%[GXA2JMZH"^#ZWF?"^/
M$<9(#PMV-A)M^\H1A]E5A/B^I_\XYL[$3XCW*G"38UH)^A8H_KD#>4%W]OB\
M/%V@*BL-&'&IWO^0=J 6V7($[(E1=*KBJ_0",#LL*R #LM5"?[DCGNH9J(*?
M@=9@S[#,0DW/@B10J$KJ]><Q=:?^**7/A']OZ)TAQQ95WX10BJ\Z&V8&54SL
MU_VSI5RR?M]U/J/0PG&<S]SQ&(@21+DA14JL'197,&Z^K405#@ )=P)9\YS>
MH;_%0^:I+J#\+!;L_M)'FW_;%_V2P"!V6ZAN68<&-6BK)K4T4>'K!DB3D/QO
MO(NZG-0,PA4L%]/7J+Q1A]S>R:60@_K!?0=)7J8-F._N]$$O?P0EGA1#FRO9
M)?JF406?&Q"R9'K)AEU+I6\400C:KX\WYP7%Q:+E1.&J^ZP*%'NEMJ]:(.$5
MNOV"-16_;#J;<(--U&OL"+E!66Q^A]OC6[+L,-LTDZ;^G'\R !@B4DU!X.0.
MT>2P=$5O>>+49HDERE22A5:-7V<\B9_A.I.+Z<M'L$*'')L^"&<;$5=EU4G;
MO&&]]H\:''47WVGZXGSQ#<<RWEY>O53P7H9OKZ@,$V\A^[0GCQ!^<79^X=U@
MTB16(R]/+QYYOY>\<7GU2;^*4M-D,NM1A 5FD6M5XW2;+N<[6N7D8;SG_LIL
MMOAJ%PI/TB;QD[_"1<G$JJ1V>\Y6;SJ\PL])[RS.*/=3 4<S(:BGY[TMZS;-
MQ3^BTD4W0TN'UJD.<,LC-S(6E8WJHZ13VQ[Y9=4UV-2A@$&TT:V]+(7?Y(+Z
M:,'S1 Z'9(PUD[$F,AI.+K(,HXI+N<3HML"0.@V%<#"W7*7@HW3ZG(E*AWT;
M=K[]IV\45H7< ?^!28M;HSKZ&M"8V,[BV4P.61(K<,]X?5>X@H.9"XR -;]E
MKWOZXKODH;R+K=0?Q3?<*9'HSM@Q<3*"R1+O=GKGG; +30Z^)!8L'8?"(<"H
MPPU\)[L'(HO"9H5Z]Y\44O(U-*%M8\/Q[)-NR[ZAEO0,G&E#7CGKE01B:K>3
MFMW0RJ\QBD03%Y'X=JI15]Q0JTL]"+Z^0V+<>/CC^T^/_I2&B80#0J2*!VS[
MLN.#&^O56F5R:Q]'&.:?%^?SIUA+5I"E,XA4XY/?WC5>J?2N>>[5;>_:"RI
M+'"FV=>)A,43SQ_#;>?OS!V>E"X%_#*^B5'DQI.+;QY]W[]"*'X327QHX%%Q
MLWCRAXD;?$8< 5#9X>:) =U9 ,'NO "2OQ-S07CLX3,]C11#?&IH?('DVC-I
MTO?E_B-7#+3'M?-2SI+&^^6.#U_1Q7U3PYTZ?!4E.WM+DZ.*K\FS_GWGOCN[
M,+&SHJH^\R11\,9KJ79;(1P<EOS_0>Y\][5RY^+<RIU%3^YP!O==[QS%I*;_
MNW/T?^6=HZ/:".+[D.  O+I=&^DU[F3/[XYBR]QQ-M ?YL'Y"DB,MJ-P&)9-
MN*3?<:.)7'F'671X'0@+FK14\^/;>\N:;\\P#5K8:[C=*DB8Z.8S;GBE8N;9
M.8B9*VI_OCXJ.*_U+C'_8;@G<D2ZX!I"W8SY$5MKXN"H$6RK S>U:GTC[- T
MB2XP\]>5Q3>9Q2/^[V%_BNAT(X&ULUKO6Y620A(?89Q3Q(R'^(/1\[+;H*N,
M[8][8N?SL\6S^V*G/GHGB2MGG^#,KK3Z^N%5MVP5?<^>(@;KQ5X^!?TR3G)\
M%S<:Y/2:=RKCJ8#M55%UF=SY@Y]=F@;$UWC"[]",D,Z'OBI_A!QPTR?D@#\"
MW\PWI<8Z3&,>DAAJ9)!R$"^Y=_$&+1D;7Q+.FJ42,E)G,"U/CIL0_=Z)*?F#
M2N1)F^:$%$TP(HLEM#JT^_X_HOVSB=:#@T%Q3[+][FQQ8<B6G*37Y.86T?'M
MTR'1T:<[\^$(J>!$)Z2"/XY+#J_]G0:E[/?YGXUQ=$.=1E+NA7 +BW 7?Q#"
M7?R9".?]K8)>D^Y6O7<4=WY?S+Q8G)T_G\Y^MVGOW_=1TO=3N0S."__;S]:M
M@@D)^D1:TJF<&4%F6EL?F>E';1)AH(]*)Z#U:&#69'-.-R"CA6KWF-!<;/1N
MVGAA?SZ57'B^+*&^/JF$ 7ID\L22R=-'6$!5JXM?XI#>]QC3$"L8^-Z]R>CI
M;60DM_/:U@Q_ $4-A5@>4^73:S _?_H!L'#C7KFBH#R#LOWQ 08&_:_H?<%:
MEN\O+QX\AB_#ZS_]L ?+\Q?JDXB76*_AT_/YM\\>L.-1_P -"X=,EE4+*$__
MW#HP FM\ 9ZOJZK5/W "L$$_T_)^^B]02P,$%     @ +G..5 %CN2OJ @
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
MT^L)98=IVV\K.+T/+6^C'370,*WHCP6-5Z#]4E,+Z 1_0/\/M/P;4$L#!!0
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
M-R57-?:CW!A%MQ7YF>65HN^KS"/PIH"SNZYJ27$#[[[QM4#]?AX8"F)-@WP
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
M]*=UBKXX-:='B5^9/"-)W",THO0(+VF#3#PO.<#[KBP84@=X!-=O<7V/ZQ_
M+;$RLDH 46N2YDQN$,XEV32I?"N#QX'OWXUIE%R2_QTQ3Q56DD]5=[ZO<VGL
M+F(R9X+)% BS9 4;+B67&Q=."9JKC R&@UX\&I$!37K#\XA<I4\5-]S7$:H6
MH$H!SVKGH3&])#'JQW1?]PT_"^P+H$TK3'K]8;RO6^:\O-<L?7SE1;V$CO9U
M/RHPECW BM 8_8I;^;Y_2EO-=\ZK**&'5#<:0-YR?,>8]LZ'XU==]AL+#SN/
M-<0WCE15TCH3;()8YI+ KGYW<C+LQ='HU!$&\:B;5I!9)Z'#:-P;8>!-8M_Z
M",-.$1>@-[Y5&>+OKNNYW6V[X57=!%[E=2N]91K?U! !:S2-SD:#@.BZ/=4+
MJTK?$E;*8H/QTQP[.F@GP/.UPHII%NZ"]C]B]A=02P,$%     @ +G..5/YY
MG5A8 @  3@4  !D   !X;"]W;W)K<VAE971S+W-H965T-#$N>&ULE53O;],P
M$/U7K" AD*(F<=(N'6VE=8  ,9A6?GQVDTMCS;&#[=#QWW-VLA#06HDOL<]^
M]_SNXN?54>E[4P-8\M (:=9!;6U[&46FJ*%A9J9:D+A3*=TPBZ$^1*;5P$J?
MU(B(QO$B:AB7P6;EUV[U9J4Z*[B$6TU,US1,_]J"4,=UD 2/"W?\4%NW$&U6
M+3O #NS7]E9C%(TL)6] &JXDT5"M@ZOD<ILYO =\XW TDSEQE>R5NG?!^W(=
MQ$X0""BL8V X_(1K$,(1H8P? V<P'ND2I_-']K>^=JQESPQ<*_&=E[9>!WE
M2JA8)^R=.KZ#H9ZYXRN4,/Y+CCTVI0$I.F-5,R2C@H;+?F0/0Q\F"7E\(H$.
M"=3K[@_R*E\SRS8KK8Y$.S2RN8DOU6>C."[=3]E9C;L<\^SFJBAT!R7YR-F>
M"VXY&/+B"]L+,"]7D<43'"XJ!K9MST9/L"64W"AI:T/>R!+*OPDBE#;JHX_Z
MMO0LXP<F9R1-0D)C2L_PI6.]J>=+3_!]4A8K[ L\0Y>-=)FGRT[0[= D92>
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
MRI2)C7H4X@CD""QC ;)5P-"'V0R  8&GYX!]:3XIEAI1B@.JD,2<<A@=!_&
M8X2-8X0G.\9#EV.\).44H^<D6V]"+ZD (U?VMNIRA.'5OFU'^ !^/S$@>YH^
MIU,-!_6:ZFR*WOWYW VD[/N#:S/GN<A@@[+4O+KQ3)$(,4G@\#D)T7U:/5W,
M2JT1G+EV(P*BW!^%,8V4PNTLRM(9#'H%:ZMS%-I_ T<MFZ.6)Q^U66A4672M
M5W0$!,IWG>FPV"\]TR^]_NJX34\OT/OYO-1SN[_[8SZNEX^ZM(8?SJI;WC]#
M?,YW<W_*39D"P4\.I#E:ZIUWKVV^87&B;OD$P7.HTS\W0=0\?_BLRTE:[0;>
M D.5<"YK0(VZ[5V:'PI:F\H K/A+WI7I9"?I'[X[U8W+-,NL N?H)@$ZA>&)
M:46/BPF**5,X\N+FS+IUQ) @TF\+"$,_ HE8+^81Q5$8>]V"DI >F JAQ7F$
MN6#GWE@:$<&;9TAO9CJU4M\QCB6-_:&<DRAJGOOMH-8.H; "BUJSE0([?$59
M1&AC!U, N2STNF5( MYE1QQ@*J6O&XL)C[K,B#$/ G]DR D@_W$K&%@!O(29
M:FTM(SP$*\3>=O]A ?=)5PZJ2I<H.-@R!7J&UF]7Y^U)V72J4\DHE%@PWZ&Y
M)#%%O.4<G!(Y ,2J 6+U^R5C&WRV2=D6'E8NM-V(+K >7OIK@70-=CY6U6W^
MV9P*]F]FA]X!^_!]\@K[$P\YYI )CL_I98,VZ71Q0\^4>^LI=HFFWY'#CGC:
M7+%/2YW<T3WEC,9$;2"/4H@7R'RB%D<P$H:(*HG# )BEC;NMOC-(GWCL28I)
M$/FCW3.-*58AY,R$'?:!) '9\ID 8F([22'S41E0)R R1I(""S&+2&JO+P!<
M$EA!QGT62B+Y3I**K,8>-4">%P.G,,C@ R0);?<!_D415K$\..H:#G= V0;&
M#1)M$6H ?J(&?J*3X><CI'[/&SQW2#28!PZ+_:,AY#!C>VN$'H\Z1_P7/W2E
MD)M@VH^.AMZ3M-SF>2L0W41&1VKFJJS!G*L>*8(8RY![KA#9[*,_RZ(!@8IS
MR\_OF)28\>B\-1_Z!S,J02(UF$B% 06E?,>/2<@&4B8J;995*P6I#PZ9:N5[
M4 &QP02)0FB)P<1(2 9[P=MSZ%"TQ$VTQ%]6(/MD#6?OWD5:-5T\54#@G@\,
M1=>P&E^+N/NCKZ."ZJV_CD7FZ;77D=CU>/N0?>MK=SUV]_#+85P[*'#!/<2\
M]=6OSOS0WRS88M+3JJ]:F&0QCI1/"HS:4*Z?H2KQ^R*O%JN;HQ!S[DL(!6&B
M]X3N/$]>YZFI4%I5:T^>"+"4?IRW.7K_.@0I]1@5AF"E'\0L)'3'R'OL+,#H
MVDJEL! ^XT8 =?2X-4)@%N^E_;*SP*, 7(%J%:HQD?($ QEHIW#82CMX2)2T
M8.L?B"+]Y_&EUS<6;=^ QL=*ME "T[0\&O)-&D(VZ)\G5)5B@ 5HL/LI(CB9
M!P#7 9_<)FY>HMF7N@>-UM$&$?_(BE\/XM^>:IT*[&]Y17<<T/MIXMX'\]-
MO.<M74<&UQ[962!9)C@-XKD26"H?V"!A"M4>I$-;U&Q("+%)6T4,5$ [*!Z"
M6@'E"8U;Z5E,XF@/6@%V=P02 N[%?I8I0\([(5+9"D;X"*D(/>W%EJ !CJ,6
MB<46^MN[P /">UWO_XR0WX#&QQ"2 Y^J-D<+(ME>><DDX4,(Z?U82T]&R$E2
M+5"EC<ET&QE=\>.0<07>, R/P\O]?G#W5E#KAZS^G//6(=)0\N@C30M3AM!#
M,*R8_0U)[BHPB2%=K-W9,E-]#H!)[ER@",,B@@K+KP1%-+02A6H3Q$;(OJ2M
M5Z*P..0$0RN!,I#5M5=B=&@E!DZ*A5OI]-SB8Y%?;%]C#$OL<O2Q]X'"4I=S
M]QE&A2;VM^[-MPI-:_.IQ_O-!PZ[X9OO1'Y.RCD0$LKT#*8&1(4C5&X^O=@\
MF&+E/G=X+(PIENYVH9.I+NT Z)\5A:D?[ +-!S#7_P502P,$%     @ +G..
M5 S'5#18!P  #Q8  !D   !X;"]W;W)K<VAE971S+W-H965T-#8N>&ULS5AK
M<]LV%OTK&'6Z(\UP(A+@,[$]8SMN-SM-ZXG3[NQ'B(0L;$A"(4$_^NM[+DA1
MDB.K3KK3V2\B(0(7]W'NN1<XN3?-IW:EE&4/55FWIY.5M>O7\WF;KU0EVU=F
MK6I\69JFDA;#YG;>KALE"[>H*N?<]^-Y)74].3MQ_UTW9R>FLZ6NU77#VJZJ
M9/-XH4IS?SH))IL_/NC;E:4_YF<G:WFK;I3]=7W=8#0?I12Z4G6K3<T:M3R=
MG >O+S*:[R;\IM5]N_/.R)*%,9]H\*XXG?BDD"I5;DF"Q.-.7:JR)$%0X_,@
M<S)N20MWWS?2?W"VPY:%;-6E*?^M"[LZG:035JBE[$K[P=S_4PWV1"0O-V7K
M?ME]/S?*)BSO6FNJ83$TJ'3=/^7#X(>=!:G_S (^+.!.[WXCI^5;:>7926/N
M64.S(8U>G*EN-933-07EQC;XJK'.GKVK<U,I]E$^J)9-/\I%J=K9R=Q"-$V8
MYX.8BUX,?T9,P-E[4]M5RZ[J0A7[ N;0:52,;Q2[X$<E_DO6KY@(/,9]SH_(
M$Z.APLD3S\C[V5A8V!MX1%PXB@N=N/ 9<3?(CJ(K%3-+-OAPH9 CBFT]ZK&W
M>&NMSIFL"P84 2/U(><>W^L?WZ7<%V_8US[_HV33QX/!FQURSCGTN?>GR\GQ
MNX-@=^!_M3:;YZ6L92&9B#T!U&!CX2<LR+PH2MBOM;;0]L9*"I;@GA IX['G
M)YRF9#%GO]B5:EANNMHVFB8)_.VS@'M9YK/4BX)XW"KPN1<'/DM\3\09"U//
M%]&1X$=C\*,7!Q_!7IM:U;;=@0*"SZX>0)RM8M,+5:NEM@>SZO@^_Y^!O^R:
M!O8RW=MJ8:L:;/V3F =>&B3TFT3X)5G[ 4^].,W85'A^Y,^8\,(L_B+>(?"2
MXC>#6DF2;6,=0GB(14D8L\CC6<3>JJ6"JL4A3:>-RLV=:AYG&^523Z00Z?EA
M@O4^-ME7+O"R,&# J2 3!,#V5+5IZJ5^.F-3[OEQ@&<<1;.M@H!F2&I&7&"#
M)!3;3\@%GK(@]3A@&L U(CT"TWB$:?QBF!8;7Y 39-LJX)5(J=1RH4MM]5-6
M[/%Y?(.OQ>6W _"\U_CIQ/,\;SJU9P6KC47A=! M'V%WT:'P@_7A\] A)TP"
M6MA572DIOC5:'S0YC;2ZOF6EP5:(MN]%64BTDL8QNS3-VF""HA*LJZXB-V(6
M" IH0V0!U+=Z"1>K.J=*8.^5JGM?P\DR=R A\>@@M&.*=4-[VD<W07WN]+JB
MI,*&9"\'CJ.0?5 M4CE?N4F%ND,/U4^CL7'PHSUR!%8/ 1T 3G@-B#6].,S8
M1V-EN<7 3CX,4$ 4(J [1':)F/VTX\ZO-$O75M:WSM^#Z&F8>)P281HBK002
M^W_C*<) P-^,SSX;K:HH4@!6,>[24D:F:>PR,_"SV1%_[")I&OE>$%(BPX1
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
MEGJ$7Y;4E%$[ ;I?*JIWVXU[H&OSL]]02P,$%     @ +G..5)N"^)<2 P
M@@8  !D   !X;"]W;W)K<VAE971S+W-H965T-#DN>&ULG57;;MLX$/V5@18H
M9$"().KJKFT@2;?8+M V:'K!/M+2V"(JD5J2BM._WR%ENVE1YZ$OO,Z<.7.H
M&:T.2G\U':*%QZ&79AUTUHXOX]@T'0[<7*D1)=WLE!ZXI:W>QV;4R%OO-/0Q
M2Y(R'KB0P6;ES^[T9J4FVPN)=QK,- Q<?[O!7AW601J<#CZ(?6?=0;Q9C7R/
M]V@_C7>:=O$9I14#2B.4!(V[=7"=OKS)G;TW^"SP8)ZLP66R5>JKV[QIUT'B
M"&&/C74(G*8'O,6^=T!$X[\C9G .Z1R?KD_HKWWNE,N6&[Q5_1?1VFX=U &T
MN.-3;S^HP]]XS*=P>(WJC1_A,-N610#-9*P:CL[$8!!RGOGC48<G#G5RP8$=
M'9CG/0?R+%]QRS<KK0Z@G36AN85/U7L3.2'=H]Q;3;>"_.SF?AK''DEERWNX
MY::#U_1.\$;.[^V$"S_R;8]FL8HM!71N<7,$OYG!V07PE,%;)6UGX"_98OLC
M0$Q,SW39B>X->Q;Q'RZO($LC8 ECS^!EY_0SCY==P'NG+!J8$WP&+C_#Y1XN
MOZ0FU4P[]0AJ!XT3<^?$;#HN]Q1&2*!BTJ2JW ,WADJ.RQ9ZP;>B%U;\3&$6
MY/F(+_ZH69+]";\[_XM<SZ\#I.U$=>GEO;3^V=T]@QM2-R3P4?,6J=(:-4EK
MJ&@;% ].7 A95-?Y M(\@RRJL@S>VP[U+VU9E.0,PBI*EO7">19YM8 [C2,7
M+> C-21#<CKME <)ZXA5)9D64<*6?E[F;$%?\0-]V(JXA[F#6BXAS/)B =>G
MJ"/_=@R9926$94TH:525M3/1$_[P.I 2\S*!<+FD(%G$RH)"-&I L/P1OZ/E
MK*3K.BL@3*.B2!;P_OSN/7)'/F0%8; Z@R(OX17N4&N*II$83PAEE)($1517
M%7&/4B?=2?.4157M,HF*JO#)LJ)<_.KKC9_TA0'UWG<_ S[WN46<3\\-]GKN
M*]_-Y^[\ENN]D(;H[\@UN:JHG^FYX\T;JT;?9;;*4L_RRXY^$JB= =WO%)7:
M<>,"G'\[F_\!4$L#!!0    ( "YSCE3TLB>I80,  * (   9    >&PO=V]R
M:W-H965T<R]S:&5E=#4P+GAM;)U6?V_;-A#]*@<-*%J C42*EJ76-I!D&=8!
M&8*DW= _:8F6B4JD1U)Q\^UWE&35V1*G+6"(O^X>WQT?>5[LC?WBME)Z^-HV
MVBVCK?>[=W'LRJULA3LS.ZEQ96-L*SP.;1V[G96BZIW:)F9)DL6M4#I:+?JY
M&[M:F,XW2LL;"ZYK6V$?+F1C]LN(1H>)6U5O?9B(5XN=J.6=])]V-Q9'\812
MJ59JIXP&*S?+Z)R^N\B"?6_PEY)[=]2'$,G:F"]A\*%:1DD@)!M9^H @L+F7
ME[)I A#2^&?$C*8M@^-Q_X#^6Q\[QK(63EZ:YF]5^>TRRB.HY$9TC;\U^]_E
M&,\LX)6F<?T7]J-M$D'9.6_:T1D9M$H/K?@ZYN%['-CHP'K>PT8]RU^%%ZN%
M-7NPP1K10J</M?=&<DJ'0[GS%E<5^OG5G:PQQ5Y6\$$/1QQR]?JC6#?2O5G$
M'O<(EG$YXET,>.P9/,K@VFB_=7"E*UD]!HB1W,20'1A>L).(?PA]!BDEP!+&
M3N"E4\1ICY<^@_>G\=+!$. ).#[!\1Z./Y= O"95UT@P&ZB4$W5M92U"0JV\
ME[J3H(X2NWZ 6IK:BMU6E="8<IA&W^&LI06A)]>GTG^:S:M?<I:D[^%GV\]2
MV.'D //>X37M4_]<_[_NX8C"AX9/ K=#& X^:14R<N=%R#WCC"1Y!HQ2PM+>
M@>24PU5G\;$A<*VJJI%OKX3S?3;.-U:5 BC+25$D4'!"LQ1R1F9%!I="BTI
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
M7D#UGS0@MAH0_V@:X G(?VN>6 U(/!I0Q_1M-""Q&I#L4@,\SEI@9S4@\6A
M W;_2@,2JP')#C3 XR/TTUNR\<N,1P7J&/U[%4BL"B0[4 &/C] _WR96!A*W
M##SQ,2)300VE5)0F:&[(1L[87 )XK[AE2*Q<)&Z2OH1-%>U]8O?FUPP%K,9&
M.7WZ]:DE6FX?D1\L*P2)6PA:@]5>6Q,K!XF;?=\&++>/R/]% [84C]T4?_'
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
M*$YCW^@,!)<.PNKSL&%<'A5L-A%*Z1&/BV7.1E>S:[^)7ES1^U#H:'(7ED"
M6Q^$_4ST'F'U4$M;8V")!;@-%FP?O4?%<YB1>!((<,O>9/N J#@<HQ!K*GXL
M,0778\I9S'DX] -N%!(2 W ]!AB&Q "K1U79V?1;J,)JZA?+L,X^,OGCCI+_
M=LX^P!4=BC:_$@D&I",P:/#V :GH2+1G#D3F?](R_[]+Q3\@%7V+I5=#@@1Y
MQ\;E9XO^08-PS44_D<!%/GR$,R JR&&LM4EI/-,=+)G700.BMBCZ.)6H1#ZH
M0QD2M4/!"#'=L$L"$ZD'IOLIST>M8./-"@,((!)92"?=RC6IF*1L##$WGR\A
MB+1I0]JTB40%*8J8KA@E$GU(/?IL['TV/C<Q )5H05NCA>E(DZHXX>K"@TJ8
MH&U@8A1'('_]#IR'RW<0\X]7252X4A'M' ARD4K+FAP+/3+=,ERN5$3M)R#2
M0@654$';0(5&E1,O#D5B38# AJNLF/A)G=0#+ZC-M%2" JT'A6]^DA4W0J%Y
MX.>89>*5,I'3^D1NF!:N:,7A$7&44XR;JG78=9@F?]#2O+RCUF*[VO"*JBF=
M:6<+5&9TVJ;5V+XVO*+J[(-JIVI4P@$UG'V47%R$A+A.7T68I#SF20K.DV0A
MI!4!DETMQ;U>9-Z7.<W=\GV_3WY8O/KW&?P/:%_PN:(5!URJ_ZB+D,LTVDKP
MH=V=@9F7*U=412*HMXT$(OI!P_T;JDYP$+4LJCF(9Q+,6#V8'44Q7\HPC^(4
MW//Q-(R"Z,D7_G#];U&9SOQL!TW>;9$XQ3H9_5\RM0]!T%$\C:D8))9A3:)B
M$H/87S+\OV3J\%^;IYB$%_8QP_]+5O$:F%8\"4_L[S3\OV0J>KG:LH1)[&)_
MX^'_98-PS1TL*[U_]N'#_TM6,?S7GN0S"8#L@X;_-ZP"LC FNAPK08LU3/_O
M3T;";8V2J,06ULGL_X)5S/X=IB;1BI,U4>QI9O^VQ!?[+YG]7]A;=%"V1";[
M8T;_%[:*2=H)K2T1R>X.D<RKGPN[HN'1"BL!R6YY"+9U7-H5KR\[CJ/S38E)
M=@,FB<I8ECX&T6E+H+#K<[%A=)[;ZG@$;KPC4NR VMN(9;J!NBW3O-U1<[-=
M=)[;ZE1%.U*V2V\<=_3*<4-TGMOJ(%\OGDSS]@<=C-W8%>U(A;G[I1]^93\
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
MB-+^7$B +U2 +U^^@ S1!7$,DEH0I LUI*O;8 #ML@5V,."VKO(,!H0 0X4
M"\\7D-N2*I6V-"$8&"H8V.&X/$ ^@(3\PI-M235!A@&#N)"O"U%8!0)C@A+F
M8Y$077BR7:@FR %?TI*H2+>A4G OYL0[&U6Z#=7)]J&:(+<1E;0\+N[M1.77
MU)?5<N6<?(A=I=M1#;D?U<_(;$@%D+<5BMF2RGY.6F\>Z:94"LC5V0MRNU/Y
MND+$4MNAJH<79':L*J1-&)'N6*6@7:%6D,.X2LF)T1VI%(@KU HR6U&-4%I^
M'.E>5 K>%60%&8YK)*DTW79*P;C"C""[[908>P)U8>B^4\%&D-V%2IS 1P)S
MX0DWHIH@NQ.5M&<M$OP+C]^+:H(,[)6F8H)@Z)Y_@XHLLQ\5*[(<&.91-H*&
MH8*&=;"!#!AFQ M%M%7!POA!;P@O2, O5,"O/FZ 8<#D3:&0(&"H(&!B9(Z<
M D9">J%">O4*"%.9($X!(\&_4,&_Q( $.F3">:'">?4Y?P;_$N?&"/N%"OLE
MGGUGFTR(+U2(KUYQ8& %.1!$9!7R:PLKQ)WQ84SHEJ@#)O03Y#:G*FU2((TI
M!.]"!>_J4FB"#.XE%YH@H;U0H;T&G#QF2##;1\F5$1 ,%1"L<\; [$QEXD1<
M- 4)!X8*!]8G96 XL-)(4#$2#@P5#BPT9V"VK8),*OA& H&A H&%)@WLYE5&
MO(\)\(4*\!64-;#[5X&1JO^1T%^HT%]AF0.W<97O"A#Q5+>NZIHZ")M:B7TA
M&GO"?:TFR&QLA9#E8K_H?M1' [43Y/:V2K)2W..9,&$X)!,V00[U\HTY!/5"
M!?4*K>I'!N22J_J1@%RH@5SAB0F'<!GQ;1L!N% !N#K5]2.#;'GJ^I$P6Z@P
M6W[#,T2J1/@M5/BM/HZ08;K2.)/*Q)! 7:A 76J(CLV9"-B%"MC5*S)MD;4I
MDU3?CP3W0@7W4B,3F#P1K L5K*M7()CI4FFO721(%RI(EQJ&SED4X;I0X;IZ
M!:0->9D"A<4\D)!;J)!;VXA@]S2*P%FH;67594@;(P-HE;%8Z8N$T4*%T>JR
M>BMRB):X>BL20@L50FNXU5N1V^]*K))' F^A F]U7;T5&6*K-"@:,4)LH4)L
M]5B]%9F-L4PN;?J !.-"!>,*W/8!&60K*2672( M5("MP-5CD=D2:V3-O'@7
M$RU5&*Z0U6.1@;5&"(EDAPBNA0JNU7WY6&3VNY*7CT5"<*%"< 7M1H$,JS7R
MW M$7A56J_/JM<AL=35*2R/UA1!<J!!<TIX4R#!8GDTID#!8J#!8O5;,10;*
M&N6E!!0BH;)0H;)\*^8BPUDEI;A5'1+4"A74JN-@RX!6OL&6@%:H@%;A*^$B
MPU6!.,]"N"I4N*KPI7"10:O$I7"1L%6HL%5^@S5$VD8X*U0XJQ[K@"*#7T&2
M2KML(.&O4.&OU! =F[81"@L5"JM79)B</Q5A=20\%BH\EAJ9P+2-H%:HH%9]
M L%M<B5FKX3#0H7#4L/0.6TC3!4J3%6O@#"O]ML;<IPO;ZIJ]7JZFKYX=C>]
MKL;3Q75M3W!6?;*'Q4_7'FZQ]IN[7U;-W?,S&^N+9F6E8_/C365OA,7Z _;?
M/S7-:O?+N6U_G6QLON/%_P%02P,$%     @ +G..5$"T@VZ, P  YPP  !D
M  !X;"]W;W)K<VAE971S+W-H965T-30N>&ULI5==;]LV%/TKA-"'%%@CD?Y*
M"MM ;'5;MZ7PZK0%-NR!EJXM(I2HDE2<_?M>?42R4TL0H!=;I'3.Y;GD/;J:
M'Y5^-!& )<^Q3,S"B:Q-W[NN"2*(N;E6*21X9Z]TS"T.]<$UJ08>%J!8NLSS
MIF[,1>(LY\7<1B_G*K-2)+#1Q&1QS/7_*Y#JN'"H\S+Q61PBFT^XRWG*#[ %
M^R7=:!RY-4LH8DB,4 G1L%\X=_2]SU@.*)[X*N!H3JY)+F6GU&,^^!@N'"]?
M$4@(;$[!\>\)UB!ESH3K^%Z1.G7,''AZ_<+^:R$>Q>RX@;62WT1HHX5SXY 0
M]CR3]K,Z_@Z5H$G.%RAIBE]RK)[U'!)DQJJX N,*8I&4__RY2L0)@$Y; *P"
ML-> <0M@5 %&?0'C"C N,E-**?+@<\N7<ZV.1.=/(UM^422S0*-\D>3[OK4:
M[PK$V>5=\#T31N1[8,@[LM$@!8;!(T VF0XB3"E.B@#(G90JX,5FX7$CJ\P@
ME3%@2,&A(217/E@NI'E+KC9<0V(CL"+@^<0[\F7KDZLW;\D;(A+R$*G,\"0T
M<]>BBGPM;E"M>%6NF+6LF#)RKY#:D ])".$Y@8ORZQRPEQRL6"?C'SRY)B/Z
M"V$>8Q<6M.X/IQ?@?G^XUZ%F5._HJ. ;M_!M0*42GM0S^?<>XAWH_SI(QS7I
MN)-TS4V$-5KN\Z44E?!I <^]YFE)IZ/QW'VZ$'12!YUT!OT3MQF="[3I(V5:
MLTZ'22GADU,IH\M"9G7(66?(;232!\V#QSXZ;FK2FV$Z;G[:D@F[O2SDMHYY
MVQGS[PR,Y=]@UT<(]1H/\@9)657X4RW,NYU=%D-/O(]VEXK25HM>A4)90\H&
MBF$_'3!\2[=H::J>=I?];QH@N1<2>JEIZIX.*_P5O5#YDPEKD=.4/NVN_:_"
M9%R2M8I3*7@2])/5>  =9@)^A3^3-6O;I,8':+<1K)4&@DZ0F!2/'GF ($J4
M5 >!;]%/_Y"_\-5K\3W:1VIC$W283_@5_NP\MCD>;9R"=EO%]N'#)E!Q'RVL
M,0HVS"C\"G^F9=967*PQ"M9M%"NTO6;;^DAJ[((-LPN_PI_YN/?:^MR3#C &
M?2@Z:4,"E26V;(3JV;I;ORMZU%?S*^SBRYZ[H2D_ >ZY/@AL$B7LD=*[GF&2
M==E5EP.KTJ+/W"F+76MQ&>&7".C\ ;R_5\J^#/( ];?-\@=02P,$%     @
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
MU*I7J%]1ZO]7A2;<S%5.\Y\X,W&T+_C1^VI2XI]S;.*#WU#\ZV0Y_Z#$R9Y
M\LZR)&>?E7A?XN/3-?X.)>TN@,D4KE/Z_W.JFT4)O7VAWL_@62KL*W1\;HEN
MP!UUC4!A[VW&E=W:V O4_F&Y;?:KX(M?;<VB5K/]>M&D7-0]6-1^(V)XT.UD
MJ)>^:S3@STK1,%36JC.]]OW8&_O8=:R^B]K#%.WNE.DEEP8$+@@R:O8HJ[KH
M((N)56O?4STI2QV:'ZZHZT;M%M#WA5)V-W$;5'W\Z%]02P,$%     @ +G..
M5+8!1:MC @  P 8  !D   !X;"]W;W)K<VAE971S+W-H965T-3@N>&ULK57;
M;N(P$/T5*^I#*^V2&P1:A4A;V&I;;254MMUG P.QZMC4=J#]^QT[(4J7BWCH
M2^++G)-S9NQ)NI7J5>< AKP77.BAEQNSOO%]/<^AH+HCUR!P9RE500U.U<K7
M:P5TX4 %]Z,@2/R",N%EJ5N;J"R5I>%,P$01718%51^WP.5VZ(7>;N&)K7)C
M%_PL7=,53,$\KR<*9W[#LF %",VD( J60^]'>#/JVW@7\,)@JUMC8IW,I'RU
MD_O%T NL(. P-Y:!XFL#(^#<$J&,MYK3:SYI@>WQCOW.>4<O,ZIA)/E?MC#Y
MT!MX9 %+6G+S)+>_H/;3LWQSR;5[DFT=&WAD7FHCBQJ,"@HFJC=]K_/0 H3=
M(X"H!D3G N(:$#NCE3)G:TP-S5(EMT39:&2S Y<;AT8W3-@J3HW"788XD]U1
MIL@+Y2601Z"Z5( E,II\)V-0;$-MDLF]T$:5U08UI(6Y'(.AC.LK!#Q/Q^3R
MXHI<$";(GUR6FHJ%3GV#,NW'_'DMZ;:2%!V1]$!%A\3A-Q(%470 /CH?'GZ&
M^YB<)D-1DZ'(\76/\/U\*YGYP*/1I&,NA5%X_@YZJ\@21V:OT"8+@T$2I_ZF
M;6$_:A $81/T26C<"(U/"AVA+"966"6K4#-43.U5.:2R8NJU54;7U\%_*O>C
MNDG_B,INH[)[4N5OV  GT8G"]!JFWE<6IK=O^4!A]J..%R9IA"9G6(Y/6.XW
M3/TO*W%__R >*/%^U($2^ZW^8GO[(U4K)C3AL$18T.ECOE35+ZN)D6O7<F;2
M8 -SPQQ_,:!L .XOI32[B>UBS4\K^P=02P,$%     @ +G..5.R*[74V P
MF@@  !D   !X;"]W;W)K<VAE971S+W-H965T-3DN>&ULE99+;]LX$(#_RD#H
MH062R)+\B O;0.RTV!0-$"1->UCL@99&%E&*=$G*3O_]#BE%ZUBR=_<BD=0\
MOAF2,YKME?YI"D0++Z609AX4UFX_AJ%)"RR9N5);E/0E5[IDEJ9Z$YJM1I9Y
MI5*$\6 P#DO&9;"8^;4'O9BIR@HN\4&#J<J2Z=]+%&H_#Z+@=>&1;PKK%L+%
M;,LV^(3V>?N@:1:V5C)>HC1<2="8SX.;Z.-JZN2]P'>.>W,P!A?)6JF?;G*7
MS8.! T*!J746&+UVN$(AG"'"^-78#%J73O%P_&K]LX^=8EDS@RLE?O#,%O/@
M.H ,<U8)^ZCV?V 3S\C92Y4P_@G[1G800%H9J\I&F0A*+NLW>VGR<* 0C4\H
MQ(U"?*PP/*&0- J)#[0F\V'=,LL6,ZWVH)TT67,#GQNO3=%PZ7;QR6KZRDG/
M+CXSKN$[$Q7"/3)3::0ML@8N854PN4$#7$+NA'9>J#P4>G^+EG%A/I#X5]RA
M@(1&ST^W\/[=!WCG5+\5JC),9F866L)U3L.T05O6:/$)M"B&>R5M8>"3S#![
M:R"D.-M@X]=@E_%9BU^8O((DNH!X$,<]0*O_KAZ=P4G:W"?>7O*ON;^ &V.0
M,MKL009TPA\QK;3F<@-+9KBY@&>IU@;UCJT%PIW<5M;)*)ERP9F_%']^)1=P
M9[$T?YT!'+: 0P\X/ &X9(+)%(%9L 7"&C=<2@+JV\O:TMA;<J5CMQB.)Y2E
MW6%^NT+1-!ZV0F\@1RWDZ"SDG4RI?!F$7*N2RL*OBAONLM%[Y&I;HP.")$FF
M1YA=H6%\(/0&<]QBCL]BKI@I8,M^^YO3=_;&':>7TU&_STGK<W+>9\&TN\*V
MT*K:D'NM<FY!:1#*]*9GTH$8#2:#H_1TA2ZC21+ULUZWK-=G63_E.55V4#F4
M:M?4%U=ZE*9*+ %?4E^/^J"O>S)WS-R529(3!V_:$D__S^U F?7!3;M'/IYV
M\+I2;VY/S1<>E/D2:6==]S.0JDK:N@BVJVV#O?%]Y6A]28VW[I/_F*F[]CT=
M&"X-",S)Y.!J0AG3=2>L)U9M?3-9*TNMR0\+^GE [03H>ZZ4?9TX!^WOR.)O
M4$L#!!0    ( "YSCE1QM\UO; (  #X&   9    >&PO=V]R:W-H965T<R]S
M:&5E=#8P+GAM;(U576_:,!3]*U=1'UJ)-I_0K@J16M"T39V$6KH]F^1"K#HV
MLQWH_OUL)V044L1+XH][#N<<QY=T*^2;*A$UO%>,J[%7:KV^]WV5EU@1=2/6
MR,W.4LB*:#.5*U^M)9+"@2KF1T$P\BM"N9>E;FTFLU34FE&.,PFJKBHB_SXB
M$]NQ%WJ[A6>Z*K5=\+-T35;X@OIU/9-FYG<L!:V0*RHX2%R.O8?P?IK8>E?P
MB^)6[8W!.ED(\68GWXNQ%UA!R##7EH&8UP8GR)@E,C+^M)Q>]Y,6N#_>L7]U
MWHV7!5$X$>PW+70Y]NX\*'!):J:?Q?8;MGZ&EB\73+DG;-O:P(.\5EI4+=@H
MJ"AOWN2]S6$/$":? *(6$)T+B%M ?"X@:0$N:K^QXG*8$DVR5(HM2%MMV.S
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
M*&N WW,IS79B?]#>M)._4$L#!!0    ( "YSCE1^Z(EI2 (  'T%   9
M>&PO=V]R:W-H965T<R]S:&5E=#8S+GAM;(U4;4_;,!#^*U;$!Y Z\MH64!II
M%$W;I&V(PO;93:Z-AV,'VVG9O]_92;, 8>J7V&??<_<\ESNG>ZD>=0E@R'/%
MA5YXI3'UE>_KO(2*ZG-9@\";C505-6BJK:]K!;1PH(K[41#,_(HRX66I.[M5
M62H;PYF 6T5T4U54_;D&+O<++_0.!W=L6QI[X&=I3;>P O-0WRJT_#Y*P2H0
MFDE!%&P6WL?P:IE8?^?PD\%>#_;$*EE+^6B-+\7""RPAX) ;&X'BLH,E<&X#
M(8VG+J;7I[3 X?X0_9/3CEK65,-2\E^L,.7"N_!( 1O:<',G]Y^ATS.U\7+)
MM?N2?>L[PXQYHXVL.C#:%1/M2I^[.@P 8?(.(.H T;& N /$3FC+S,FZH89F
MJ9)[HJPW1K,;5QN'1C5,V+^X,@IO&>),]L.4H,@=Y,!V=,U!D],;,)1Q?48^
MD(?5#3D].2,GA ER7\I&4U'HU#>8V>+]O,MRW6:)WLGRE8IS$H<3$@51- )?
M'@\/7\)]U-N+CGK1D8N7O!/O.TZ'[2XFMB2G-3.4$UK\QFIC?QJ-W7DH!]DH
M66&O/35,,]MWH^+;;#.7S8[-+HN#R]3?#16^]8GB>>_S0D;<RXC_*Z/]=__(
MCG)K0TP'><-X/IN]8C?BE4POXW%^2<\O.8+?H+<F!"L_(<M&*:SSA-Q+K/P8
MZ>1-L<(DF$]?D1[SNHB#5Z3]P7#8A^D;55LF-.&P05QP/D?5JAWVUC"R=O.R
ME@:GSVU+?!]!60>\WTAI#H8=P?[%S?X"4$L#!!0    ( "YSCE3CVTE&_P$
M #$$   9    >&PO=V]R:W-H965T<R]S:&5E=#8T+GAM;(U476_:,!3]*U=1
M'UIIPR&T8ZM") JKVDG5$*C;LTENB%5_9+9#NG\_VPE1)H'4%^)KGW-\S[%-
MVBK]9BI$"^^"2[.(*FOK>T),7J&@9J)JE&ZE5%I0ZTI](*;62(M $IPD<?R%
M",IDE*5A;J.S5#66,XD;#:81@NJ_#\A5NXBFT6EBRPZ5]1,D2VMZP!W:UWJC
M744&E8()E(8I"1K+1;2<WJ\2CP^ 7PQ;,QJ#=[)7ZLT7S\4BBGU#R#&W7H&Z
MSQ%7R+D7<FW\Z36C84M/'(]/ZH_!N_.RIP97BO]FA:T6T=<("BQIP^U6M4_8
M^[GS>KGB)OQ"VV'G\PCRQE@E>K+K0##9?>E[G\.(,+V]0$AZ0O)1PJPGS(+1
MKK-@:TTMS5*M6M >[=3\(&03V,X-D_X4=U:[5>9X-OMI*]2PQ1S9D>XY&O@,
MRZ)@/F/*X5EV%\4G?KU&2QDW-P[RNEO#]=4-7 &3\,(X=P"3$NLZ\KHD[W=_
MZ'9/+NS^@\H)S*:?((F3Y Q]]7'Z]'\Z<3D,821#&$G0N[V@MQ2JD=;X.-01
MM<\#2JT$/#:R,/"$O/!^OYO<"9]SV\E_"_+^_1RS>#)+R7%LZ1PF&3!=WV1T
MH/XQO5!]8-( Q]*QXLG\+@+=7="NL*H.9[Q7UMV8,*S<FT;M 6Z]5,J>"G]M
MAG^)[!]02P,$%     @ +G..5(9/>\AN P  Q P  !D   !X;"]W;W)K<VAE
M971S+W-H965T-C4N>&ULK5==3]LP%/TK5L0#2!N)\UW45H(R-*8Q53#&P[0'
MMW&)11('VVEAOWYV&I*0.*5#O+1V<N[UN;[7QS?C#64//,98@*<TR?C$B(7(
M3TR3+V.<(GY,<YS)-RO*4B3DE-V;/&<81:51FIBV9?EFBDAF3,?ELSF;CFDA
M$I+A.0.\2%/$GL]P0C<3 QHO#Z[)?2S4 W,ZSM$]OL'B-I\S.3-K+Q%)<<8)
MS0##JXEQ"D]F,%0&)>(7P1O>&@,5RH+2!S6YC":&I1CA!"^%<H'DWQK/<)(H
M3Y+'8^74J-=4ANWQB_>+,G@9S )Q/*/)'8E$/#%" T1XA8I$7-/-5UP%Y"E_
M2YKP\A=L*JQE@&7!!4TK8\D@)=GV'SU5&]$R@.Z @5T9V/L:.)6!4P:Z95:&
M=8X$FHX9W0"FT-*;&I1[4UK+:$BFTG@CF'Q+I)V8SIFL"":> <HB\.6Q(+G,
MD0"?P<"+PW,L$$GXD83<WIR#PX,C< !(!G[&M. 2R\>FD+R4=W-9<3C;<K '
M.'Q#V3%PX"=@6[:M,9_M;PY?FYMR-^HML>LML4M_[H"_&>5"%\36RB^MU.E8
M3UW/#>2*ZS97#<IV55AK#26GIN3LI'2Z7!9ID2"!(X!2R@3YB]0IT-'<>O):
M!!S7]]P.30W*<AQ'3].M:;H[:?[ VHUS>VM!*X1!AY$&95OA2,_(JQEY;^0R
MS0N!6:N"?U_A=('9GQV5XM?>_7=5BM\+Q;5&3C?@/LH)7'\@X*"F%'Q8I01]
M M#WK0[-/LH.H3U0*6%-,]Q)\Z)@&1$%PZ6\7) G->;[Y&94KS!Z5VY&_3+S
M/*<3LP;DCEQ]R-!JI-;ZL-Q4KEX?!Z];0CJ4/%H#1%MW MQ)]#N6%V-,DPA<
MICFC:ZP.SE[9@8W(PO>I;&76#BELR6<5MP9D!0-A-R(+/TYE85] /:=[%VA
MKC64G49DX6Z5;:3L,N,")8FD>T=$#&9ENX#9?IEJ)!2^I:$#F?+ZQ><[7G</
M="AOZ"PUR@MW2^]_Y:JOM/)J\;M$^ZC #@=X-G(,W]!CSF4O7F21O(-F5.:+
M%=O^=9\4-6H*=\OI8(K"7C?BV=U60 ,:C;J!FZT64_7W5XC=DXR#!*^DE74<
MR'UCVY9Y.Q$T+[O.!16R*,MA+#\S,%, ^7Y%J7B9J$:V_G"9_@-02P,$%
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
M*WUFV&&F3W40)D"O;SE7KQ-S<#3_$Y*_4$L#!!0    ( "YSCE04.Q[\/P0
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
MQ6ZMPW!0MZ-WM\/[Z4E\5R(3N%7FU4X<,LTUS(K7-]"+]C-3O% _B^0@M>X
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
MLF8%+143)9)T,_6^XLLY#HW [OC-Z$[MC9$)92G$DYG\6$^]P'A$.5UI8X+
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
M>JF.(*H[L.HH7MA#?L&5OC)L<Z-_&T 8@)Y?<2VC[IA[H_D1&?\'4$L#!!0
M   ( "YSCE1&\"'ZW (  ,H(   9    >&PO=V]R:W-H965T<R]S:&5E=#<W
M+GAM;,U6WV_:,!#^5TYY6B7:_"30"I"@=-HFH:&R;@_3'DQR$*N)G=E.:?_[
MV4[(*+_$8U_ OMSWW=UWCB^##1?/,D-4\%KD3 Z=3*GRSG5EDF%!Y TOD>DG
M*RX*HO16K%U9"B2I!16Y&WA>[!:$,F<TL+:Y& UXI7+*<"Y 5D5!Q-L$<[X9
M.KZS-3S2=::,P1T-2K+&!:JG<B[TSFU94EH@DY0S$+@:.F/_;MHW_M;A)\6-
MW%F#J63)^;/9?$V'CF<2PAP391B(_GO!>\QS0Z33^-MP.FU( ]Q=;]D_V]IU
M+4LB\9[GOVBJLJ'3=R#%%:ER]<@W7["IIVOX$IY+^PN;QM=S(*FDXD4#UAD4
ME-7_Y+7180?@QR< 00,(]@'1"4#8 ,)+ 5$#B*PR=2E6ARE19#00? /">&LV
ML[!B6K0NGS+3]H42^BG5.#5Z(()1MI8P1P&+C B$3U-4A.;R"JY!&HL<N$J'
M,@ W:6@G-6UP@M8/8,:9RB0\L!33]P2NSK%---@F.@G.,GXC[ 9"OP.!%P1'
M$KJ_'.X?@4\OAWMGJ@E;V4/+%YW@LTI?FP.;PIR\Z?=(P5@(PM9HUAWX7MK7
MXO<,BR6*/V="1FW(Z&S(,5,TI7EEWC-88%()JBCJ!KTF>:5[!"O!"[CG15DI
M8H/S%1P>CPZ,"U[I=#]1UAR/JV/GHTZF:Y,Q=\_+R/<\+=W+;L\.G7J^'_OO
MO::'7MU;[[9U>J=&MU6C>[X!BB?/C<JR S_TE2DK\0:U?88JX^DEZL=MO/@C
MJ1\?2!;$O2",]_0_=/-[W;TF30^=PJX7Q='Q!O1:07IG!9DOGB00EL*C65R@
M=+\E[G\DI?L'ZNP?\D./*/2\8$_E<SRU#N[.+5^@6-MI*2$Q6=;W:&MM!_+8
MSJ$]^T0/ZGJN_J>II_R,B#5E$G)<:4KOIJ?S$?7DK#>*EW:6++G2D\DN,_VQ
M@<(XZ.<KSM5V8P*TGR^C?U!+ P04    "  N<XY4,6G4M\P#  #Q"P  &0
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
MG>A5 \JH&7GW)A_VEU&LO0R;O6QD&57H+WNG?3*P]C1L=I915%1A[K>."]T
MX@ZVVJJPV:IJ(7'[J"C>^VYG-I*A510??ZKS?,OO2EY;".YC(<.IJ(([4-$@
M['S!P=J6\(E?Z@;^$GKL4CZVO X5Q=JEL-FE1E%1A;E_*V",@J[W,JRM"I]H
M5<.IZ"O(OE)16*LH\%_54&UDV&QD8VMHV-8Y71^FL78T;/:5<40T.OXF&@;1
M2\6W]]9Z,LJ7U8I6 >9LDXMZV:<YVZR:G==K1?KR>LGMFO!E(MFF="&'.E8@
ML7F]BE4?"+:N5H[NF1 LJW97E,24EQ?(_Q>,B=U!"="L)<[^ 5!+ P04
M"  N<XY4SH] 3?H#  "S#P  &0   'AL+W=O<FMS:&5E=',O<VAE970X-"YX
M;6S-5UV/FS@4_2L6VH=6F@ VWU42*3-I=UMIME&CG3ZL]L$)3H(&,&L[2>??
MUS:$$"!,M-)H.P\3;,Z]G'/O]<<='RE[YCM"!/B1I3F?&#LAB@^6Q=<[DF%N
MTH+D\LV&L@P+.61;BQ>,X%@;9:F%;-NW,ISDQG2LYQ9L.J9[D28Y63# ]UF&
MV<L]2>EQ8D#C-/$MV>Z$FK"FXP)OR9*(OXH%DR.K]A(G&<EY0G/ R&9BS."'
M.?24@48\)>3(&\] 25E1^JP&G^.)82M&)"5KH5Q@^7,@#R1-E2?)X]_*J5%_
M4QDVGT_>/VGQ4LP*<_) T^])+'83(S1 3#9XGXIO]/@'J01I@FN:<OT?'"NL
M;8#UG@N:5<:209;DY2_^406B80#]*P:H,D!M _>*@5,9.+<:N)6!JR-32M%Q
MF&.!IV-&CX IM/2F'G0PM;64G^0J[TO!Y-M$VHGI4M#U\TA%+@8/-)/EQ+%.
MR"+%.0<CL"P+ M -^)/F!\*%1"YWF!'P;DX$3E+^7L)^ Q;@:I:/+2%Y*>_6
MNN)P7W) 5SA !!YI+G8<?,QC$E\ZL*2@6A4ZJ;I'@QZ_X-P$#KP#R$:HA]##
M[>:PQWQ^N[D]H,:I<^1H?^ZU'*FX]N5HQAC.MT0N0P%6+Z")6^ 7/3T[8A;?
M@:^%,N!WX'=I(3A(9(()2VBL9BCGX)V<*?/WOB^!)4%/$U1;R6&* F@C;VP=
MFF'MPIP0AEYT"9OWP/P !DX-NPB36X?)'0R3ED:DHN]ZL9-X!&8'PN3N5:H>
MR05"P"><,/"$TST!!6&G2I;J8YJFF'$]JR/1&XB20M"@#GTS"%IQZ$'9)FR'
MH8L*S2CJ#X)7!\%[O59V-(T)&\V*@M&#6JYJD5<UH!<V^/N19"O"_AFH3K_^
MHC_\Q89S#K[N!1<XCY-\^UI-^9TJ\&SH>^V:ZL)<._*]*\42U*R#0=9O62-!
M)Z^1Z:&6K"XH-&T4-?_Z%8:UPO!7WS7"VW:-+JRU:USHCVK]T?^_'40W;0<]
MJ(OMX$(?M,]'MSVH\*D\C%])0N6D&=Z18]L>:K/L R+?1TYXA6CCC@%O(/JV
MF:@H7 09FFY[V?7 PNNI0&>%:%"AO(-N2')+-E WR)%,1YMF#PPY_E6BYZL$
M'+Y+U$3?.!M.-QN.Z;EMF5V8:X;!%9'GBP <O@G\YR.I\GMQV/@H;!PV%>\N
MKN_LFO?Y&SB\X/F4A\/'_)OFSNO+'?3;,>C"NL?<O ?UVCEG-;J9C+"M[@HY
M6--]+LH6H)ZM.\^9[K=:\_>J(]5=TME-V<X^8K9-9&FD9"-=VF8@6;*R0RP'
M@A:Z9UI1(3LP_;B3735A"B#?;R@5IX'Z0-VG3W\"4$L#!!0    ( "YSCE3C
M"2QR304  $47   9    >&PO=V]R:W-H965T<R]S:&5E=#@U+GAM;,586T_C
M.!3^*U8U#R!!$CO7HE()Z,SNC,1N106CU6H?3..VT21QUW9;^/=KQVG2YM;
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
M@LBKET:N:V8\&IA@L(,CZ,SB;DWUYK)45+A,V>4/_:[_1NZG11/#" W8L@2
M;@2<DY)D!-S01UIN*?@!]):B-XRR(NWI5JVY8.H9?+VBQ0,5WUS>+2Z@7U[
M/C F&L8#UBTSH!L:!UK7'=XV!RQMH%_<P#YO'.-@B0/=R+DOF:(9N%75SOD#
M7.B-5BJ6'C$%+)Z@7S[!/8":3*,!ZQ91T,VH ZWK'J]0#5FJ(;]40WVJQ7
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
M5'8!O4^E-/N!W:#IOV?_ U!+ P04    "  N<XY4ILH&5_8#  "I#   &0
M 'AL+W=O<FMS:&5E=',O<VAE970Y-2YX;6REE^N/VC@0P/\5*^J'5MINW@\J
M0%K8GJXG5;?:[>.S20:PFMB<;6![?_V-G1 @"5'5DQ#$R<SX-^/,@^E1R!]J
M"Z#):U5R-7.V6N\^N*[*MU!1=2]VP/')6LB*:ES*C:MV$FAAE:K2#3PO<2O*
MN#.?VGM/<CX5>UTR#D^2J'U54?ES :4XSAS?.=UX9INM-C?<^71'-_ "^NON
M2>+*;:T4K *NF.!$PGKF//@?EGYD%*S$-P9'=7%-C"LK(7Z8Q:=BYGB&"$K(
MM3%!\>< 2RA+8PDY_FF,.NV>1O'R^F3]#^L\.K.B"I:B_,X*O9TYF4,*6--]
MJ9_%\4]H'(J-O5R4RGZ38R/K.23?*RVJ1AD)*L;K7_K:!.)"P4]N* 2-0M!5
MB&XHA(U":!VMR:Q;CU33^52*(Y%&&JV9"QL;JXW>,&Z.\45+?,I03\^7@FN)
ML20+6E*>@[HC3R#MZX$K\O>J9!MJ JX(Y05IQ9=":47>D^66\@THPCAYA#5(
M"05YA@/P/5PK/"@%J/'V$31EI7J'NE]?'LG;-^_(&Z/]92OV"C74U-7HEZ%S
M\\:'1>U#<,,'/R"?<9NM(A]Y <6U 1<#TD8E.$5E$8Q:_(OR>Q+Z=R3P@F
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
MY"=Q:B=(>X+T/0*^APP5IY/6!I&:4P=)[(TH3-5D:N3!% 4XOI"':4\Q?:>
M-JP$),DK7,W%U)@[Q.-4F)H@#:(1A"F:^%'DV2E\[_3Q]*X?4OTWL #5?-B_
M:)[M1!FM\M*BPNGXG+6(HC"^ #'H /RK$"O8 N>JICBH;;VW)J)S,9PY]HT3
MUJ**TB094YBJ2>@//CSG'/C$@=\K*JZSH#N/]N[FO$]9DIJJ-N<+>F;J8L7$
MYM<.)ZF1+%,V":)D7'0V682C<<+<0?=6 M\U7;! S4G5-C+]:-]IWS7]Y6C\
M7G?@35=X<M.V[]\)W]%*J"K=*I?>;:(6G[<=<?L@6=WTB&LF5<?9W.;J7P1P
M+5#OMXS)XX.>H/]?LO@?4$L#!!0    ( "YSCE03>)6Y#@,  .,)   :
M>&PO=V]R:W-H965T<R]S:&5E=#$P,BYX;6RM5EMOFS 8_2L6ZD,K;04;PJ5*
M(N72;9U6*6K6[=D!)U@%.[.=I/WWLPVE*2&H#WU);'/.X3O'%I^'!RZ>9$Z(
M L]EP>3(R97:WKBN3'-28GG-MX3I)VLN2JST5&Q<N14$9Y94%B[RO- M,67.
M>&C7%F(\Y#M54$86 LA=66+Q,B4%/XP<Z+PN/-!-KLR".QYN\88LB7K<+H2>
MN8U*1DO").4,"+(>.1-X,X>68!%_*#G(HS$P5E:</YG)739R/%,1*4BJC 36
M?WLR(T5AE'0=_VI1IWFG(1Z/7]6_6?/:S I+,N/%7YJI?.3$#LC(&N\*]< /
M/TAM:&#T4EY(^PL.-=9S0+J3BI<U65=04E;]X^<ZB","#,\04$U ;4)PAN#7
M!/^CA* F!#:9RHK-88X5'@\%/P!AT%K-#&R8EJWM4V;V?:F$?DHU3XV79*-W
M49$,W+'J%)G=^ K>UA_(GK = :L7\)WPC<#;G*:X +]X6H'Y&LQLH42 RSE1
MF!;R2DL\+N?@\N(*7 #*P.^<[R1FF1RZ2I=M7NZF=8G3JD1TID2(P#UG*I?@
MEF4D>R_@:K^-:?1J>HIZ%7]B=@U\^ 4@#Z&.@F8?I\,.^OSC=*_'C=]LH6_U
M@C-Z[W9%5+O5E7*E$EH5\SG8CP,4A(DN87_L_13F!W$8!N]A\PX8&D0);&#O
MO 2-EZ#7RR.CYLPM%59$@LO'Y55/0(-&=/ I 54J@R-+*$!>'+8"ZH!!B'S4
M"J@#YJ$8!MT!A8V7L-?+[?WMI">2J)&)/B62Z,0$1'%R<F9.84D 0[^5R"DJ
M1H,D[ XD;IS$O4YFF.$,]T22-$+)IT22G+CP0PC;A^04A1(_CEN)=* BWSMS
M1*#W]DWW>JU,),5@@5.ZIFE/,O"H2<!/R::6.?XJP"A(6K9G73 =#FRETPGS
MHJ@5CWO4_70/VMA;A 0IWS%5]81FM;FI3&Q_;JU/S0W&=M4WF>KZ<X_%AC()
M"K+6DMYUI+=,5#>*:J+XUO;8%5>Z$=IAKF]A1!B ?K[F7+U.S N:>]WX/U!+
M P04    "  N<XY4>LXF*\T"  "+"   &@   'AL+W=O<FMS:&5E=',O<VAE
M970Q,#,N>&ULG59=;]HP%/TK5M2'5MJ:[Z\*D IL6JM50J7=G@VYD*B)S6P#
M[;^?[027AA!5?0';.>?XW.,D-X,]92\\!Q#HM2H)'UJY$)L;V^;+'"K,K^D&
MB+RRHJS"0D[9VN8;!CC3I*JT/<>)[ H7Q!H-]-J,C09T*\J"P(PAOJTJS-[&
M4-+]T'*MP\)CL<Z%6K!'@PU>PQS$\V;&Y,PV*EE1 >$%)8C!:FC=NC?35.$U
MX$\!>WXT1JJ2!:4O:G*7#2U'&8(2ED(I8/FW@PF4I1*2-OXUFI;94A&/QP?U
MG[IV6<L"<YC0\F^1B7QH)1;*8(6WI7BD^U_0U!,JO24MN?Y%^P;K6&BYY8)6
M#5DZJ I2_^/7)H<C@AN=(7@-P6L3@C,$OR'XGR4$#2'0R=2EZ!RF6.#1@-$]
M8@HMU=1 AZG9LOR"J&.?"R:O%I(G1G-8RT,4D*$[4M]$ZC2^H_?U1]@!V0):
MO)GAT]L&T.44!"Y*?B71S_,INKRX0A>H(.@IIUN.2<8'MI .U3[VLG$SKMUX
M9]RX'GJ@1.0<_2 99!\%;%F:J<\[U#?V>A7O,;E&OOL->8[G=1B:?)[N=M"G
MGZ<[/=7XYK1\K1><T6L.H#/9FAEIIGK8=Z/ "Z)4;KL[KO<4Y@=)% 4?8=,.
MF!?&J6M@'_P'QG_0ZW\.;%<LH2>)T"B%7TZB9H;'WN,D2%LE3CI@3AK[;BN)
M4YB7!%$8="<1&?]1K_\9HRO@ZN6)2\3K6#B23PVB(@?6DU!L=HB_G%!\4E/@
MNG[4"N@4Y?M)G+;RZ4*%8=@=3V+,)[WF?\LX".^[45*CE'XYAO3D)@^=J/W
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
M  T8$D75/KBW'X6;?2IL__\:_P902P,$%     @ +G..5)>*NQS     $P(
M  L   !?<F5L<R\N<F5L<YV2N6[#, Q ?\70GC 'T"&(,V7Q%@3Y 5:B#]@2
M!8I%G;^OVJ5QD L9>3T\$MP>:4#M.*2VBZD8_1!2:5K5N %(MB6/:<Z10J[4
M+!XUA]) 1-MC0[!:+#Y +AEFM[UD%J=SI%>(7->=I3W;+T]!;X"O.DQQ0FE(
M2S,.\,W2?S+W\PPU1>5*(Y5;&GC3Y?YVX$G1H2)8%II%R=.B':5_'<?VD-/I
MKV,BM'I;Z/EQ:%0*CMQC)8QQ8K3^-8+)#^Q^ %!+ P04    "  N<XY4H,LM
M+3,'   #10  #P   'AL+W=O<FMB;V]K+GAM;,6<VV[;.!! ?X7P4PNLU[*N
M5M$4R+4;(-T8<=#7@I$9FZ@DNJ24M/WZ):FZ'=GR8%_&?DHEJ_+)2.3A#,F\
M?U7ZZY-27]GWJJS-V6C=-)MWDXDIUJ+BYF^U$;7]Y%GIBC?V4*\F9J,%7YJU
M$$U53L(@2"<5E_7HP_OMO>9Z @]4(XI&JMJ>="<^2_%J_GSN#MF+-/))EK+Y
M<3;R_R[%B%6REI7\*99GHV#$S%J]_J.T_*GJAI>+0JNR/!M-NP\^"]W(8N_T
MPD$^\B?CSS3\Z8%;D+-1&M@;/DMM&G^%OS^WC"_"7MP=M8VZD64C]!5OQ$>M
MVHVL5^XV]K>8@%_#QV'[LPOB._U_PJB>GV4AKE315J)NNCAJ43K VJSEQHQ8
MS2MQ-MI>PL[K);NN&QLD=EMWM[+7NM_4?O7MLONM&XL+8JC?2?N!OEUZ<#K(
M2WNL2KFTW[YD%[SD=2&8#ZX!@"$"&)X,D+V9<P 9(9#1$2$7#L+]!\/4,[O?
M" T@8P0R/AGDI:HV #)!(),30GX) 62*0*8G@URL.7S<&0*9G2Z2W*P!Y R!
MG-%"7@E3:+EQYQU8LQ;LHC6R%@9V/SD"F-,"7G C?<SF6AA[Z5[7'6!]=T +
M=UY\:^V7^O.0"?4)L5!NN-3L,R];P3X);EK=O780#[/)E%@GCYHO!3LO"M6Z
MQO @"B%?N&?X XB99$JLDGO;!C3@ZD4.L\>46!^W]8N]0.D?$ @SQ918%7:
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
MH^H= 7I'U3L"](ZJ=P3H'57O"- [J=X)H'=2O1- [Z1Z)X#>2?5. +V3ZIT
M>B?5.P'T3LUA$X#>2?5. +V3ZIT >B?5.P'TSJIW!NB=5>\,T#NKWAF@=U:]
M,T#OK'IG@-Y9]<X O;/JG0%ZY^:P($#OK'IG@-Y9]<X O8OJ70!Z%]6[ /0N
MJG<!Z%U4[P+0NZC>!:!W4;T+0.^B>A> WD7U+@"]2W/8&Z!W4;T+0.^J>E>
MWE7UK@"]J^I= 7I7U;L"]*ZJ=P7H757O"M"[JMX5H'=5O2M [ZIZ5X#>M1G6
M >AM33NN _#;FF9@QP $MZ89V3$ PZUIAG8,0'%KFK$= W#<FF9PQP DMZ89
MW3'?:?DX?>R&\5KTM6X"OE/NZ?+9X?K]G\NOB^W]_HEU?YLQ/OX%4$L#!!0
M   ( "YSCE2A0-8C;0(  /\[   3    6T-O;G1E;G1?5'EP97-=+GAM;,W;
MWVZ;,!3'\5>)N*T"V& #4].;=K=;+_8"#)P&A7^RW2Y]^SFDK;2IBU9ETKXW
M08GM\SOX2)^[7'][GHU;'89^=)MHY_W\*4E<LS-#[>)I-F-8V4YVJ'WX:A^2
MN6[V]8-)9)KJI)E&;T:_]L<:T<WUG=G6C[U??3Z$GUTWC9O(FMY%J]O3QF/6
M)JKGN>^:VH?UY&EL?TM9OR3$X>2RQ^VZV5V%#5'R;L)QY<\!+^>^/AEKN]:L
M[FOKO]1#V)4<^L3YY]ZX^'R)=WJ<MMNN,>W4/ [A2.QF:^K6[8SQ0Q^?BEZ=
M3_;AALWI4UR<OY0Y%QAVWMMI=F%BUGP\[G4DQ]/K.10RUG?G7_$M,92^^/W,
M<=JM:?\R.USOC\GNEWFX9'E<?L>_SOBM_@?[D) ^,D@?.:0/!>E#0_HH('V4
MD#XJ2!\BI31"$5502!444P4%54%155!8%117!05609%54F25%%DE159)D552
M9)44625%5DF155)DE119,XJL&476C")K1I$UH\B:463-*+)F%%DSBJP91=:<
M(FM.D36GR)I39,TILN8467.*K#E%UIPB:TZ155%D5119%45619%54615%%D5
M159%D5519%44635%5DV155-DU119-45639%54V35%%DU159-D;6@R%I09"TH
MLA8460N*K 5%UH(B:T&1M:#(6E!D+2FREA192XJL)476DB)K29&UI,A:4F0M
M*;*6%%DKBJP51=:*(FM%D;6BR%I19*THLE8462N*K!5%5I%2:!4IQ5:14G 5
M*457D5)X%2G%5Y'^3V"_3]/^'\<OSWBHN_$U/UG^]WOS$U!+ 0(4 Q0    (
M "YSCE0'04UB@0   +$    0              "  0    !D;V-0<F]P<R]A
M<' N>&UL4$L! A0#%     @ +G..5)]07WWO    *P(  !$
M ( !KP   &1O8U!R;W!S+V-O<F4N>&UL4$L! A0#%     @ +G..5)E<G",0
M!@  G"<  !,              ( !S0$  'AL+W1H96UE+W1H96UE,2YX;6Q0
M2P$"% ,4    "  N<XY4YWEIQ*,&   ((   &               @($."
M>&PO=V]R:W-H965T<R]S:&5E=#$N>&UL4$L! A0#%     @ +G..5*\W*;BY
M!@  71D  !@              ("!YPX  'AL+W=O<FMS:&5E=',O<VAE970R
M+GAM;%!+ 0(4 Q0    ( "YSCE0/K*F)" (  .$$   8              "
M@=85  !X;"]W;W)K<VAE971S+W-H965T,RYX;6Q02P$"% ,4    "  N<XY4
M+00+..@%  #6%@  &               @($4&   >&PO=V]R:W-H965T<R]S
M:&5E=#0N>&UL4$L! A0#%     @ +G..5,:QPP,F P  N @  !@
M     ("!,AX  'AL+W=O<FMS:&5E=',O<VAE970U+GAM;%!+ 0(4 Q0    (
M "YSCE2!*L/39 (  ) %   8              " @8XA  !X;"]W;W)K<VAE
M971S+W-H965T-BYX;6Q02P$"% ,4    "  N<XY4K^LM-ZT$   8$@  &
M            @($H)   >&PO=V]R:W-H965T<R]S:&5E=#<N>&UL4$L! A0#
M%     @ +G..5&4L+5R\!@  KAD  !@              ("!"RD  'AL+W=O
M<FMS:&5E=',O<VAE970X+GAM;%!+ 0(4 Q0    ( "YSCE0@ +9#>P0  +$)
M   8              " @?TO  !X;"]W;W)K<VAE971S+W-H965T.2YX;6Q0
M2P$"% ,4    "  N<XY451W[C=<H  "VA0  &0              @(&N-
M>&PO=V]R:W-H965T<R]S:&5E=#$P+GAM;%!+ 0(4 Q0    ( "YSCE1?C9I6
M?Q(  ,%-   9              " @;Q=  !X;"]W;W)K<VAE971S+W-H965T
M,3$N>&UL4$L! A0#%     @ +G..5/=24W\!"   <18  !D
M ("!<G   'AL+W=O<FMS:&5E=',O<VAE970Q,BYX;6Q02P$"% ,4    "  N
M<XY45ZQ1_$ #  !5"   &0              @(&J>   >&PO=V]R:W-H965T
M<R]S:&5E=#$S+GAM;%!+ 0(4 Q0    ( "YSCE02O)9LQ@(  +0&   9
M          " @2%\  !X;"]W;W)K<VAE971S+W-H965T,30N>&UL4$L! A0#
M%     @ +G..5'P^]1J5 @  LP4  !D              ("!'G\  'AL+W=O
M<FMS:&5E=',O<VAE970Q-2YX;6Q02P$"% ,4    "  N<XY4XG !;=0"  "D
M!@  &0              @('J@0  >&PO=V]R:W-H965T<R]S:&5E=#$V+GAM
M;%!+ 0(4 Q0    ( "YSCE3. MHJ5 0  ,P)   9              " @?6$
M  !X;"]W;W)K<VAE971S+W-H965T,3<N>&UL4$L! A0#%     @ +G..5+(5
M)6PN P  -@<  !D              ("!@(D  'AL+W=O<FMS:&5E=',O<VAE
M970Q."YX;6Q02P$"% ,4    "  N<XY4VFM@U;4"   W!@  &0
M    @('EC   >&PO=V]R:W-H965T<R]S:&5E=#$Y+GAM;%!+ 0(4 Q0    (
M "YSCE2(F ]"Z 0  .@*   9              " @=&/  !X;"]W;W)K<VAE
M971S+W-H965T,C N>&UL4$L! A0#%     @ +G..5.N+1#D3!   G0H  !D
M             ("!\)0  'AL+W=O<FMS:&5E=',O<VAE970R,2YX;6Q02P$"
M% ,4    "  N<XY4 IVW/H@)  !@&   &0              @($ZF0  >&PO
M=V]R:W-H965T<R]S:&5E=#(R+GAM;%!+ 0(4 Q0    ( "YSCE3TRM:8U00
M #,+   9              " @?FB  !X;"]W;W)K<VAE971S+W-H965T,C,N
M>&UL4$L! A0#%     @ +G..5/%G&_*4!   RPL  !D              ("!
M!:@  'AL+W=O<FMS:&5E=',O<VAE970R-"YX;6Q02P$"% ,4    "  N<XY4
MT]$8C3T,  #4,   &0              @('0K   >&PO=V]R:W-H965T<R]S
M:&5E=#(U+GAM;%!+ 0(4 Q0    ( "YSCE2D3##FYPH  +$@   9
M      " @42Y  !X;"]W;W)K<VAE971S+W-H965T,C8N>&UL4$L! A0#%
M  @ +G..5*:(M$\"!0  ZPT  !D              ("!8L0  'AL+W=O<FMS
M:&5E=',O<VAE970R-RYX;6Q02P$"% ,4    "  N<XY4I^6_@-@$  #R"P
M&0              @(&;R0  >&PO=V]R:W-H965T<R]S:&5E=#(X+GAM;%!+
M 0(4 Q0    ( "YSCE2/_$/C+P,  /\&   9              " @:K.  !X
M;"]W;W)K<VAE971S+W-H965T,CDN>&UL4$L! A0#%     @ +G..5)"OZ2PC
M!0  T P  !D              ("!$-(  'AL+W=O<FMS:&5E=',O<VAE970S
M,"YX;6Q02P$"% ,4    "  N<XY4N#WL-!L#  "-!@  &0
M@(%JUP  >&PO=V]R:W-H965T<R]S:&5E=#,Q+GAM;%!+ 0(4 Q0    ( "YS
MCE0@P3.,&2\  ,ZI   9              " @;S:  !X;"]W;W)K<VAE971S
M+W-H965T,S(N>&UL4$L! A0#%     @ +G..5 %CN2OJ @  .@<  !D
M         ("!# H! 'AL+W=O<FMS:&5E=',O<VAE970S,RYX;6Q02P$"% ,4
M    "  N<XY4UVVK\! )  "L'@  &0              @($M#0$ >&PO=V]R
M:W-H965T<R]S:&5E=#,T+GAM;%!+ 0(4 Q0    ( "YSCE2R*D-L%@,   \)
M   9              " @706 0!X;"]W;W)K<VAE971S+W-H965T,S4N>&UL
M4$L! A0#%     @ +G..5+>J+$#V @  B0<  !D              ("!P1D!
M 'AL+W=O<FMS:&5E=',O<VAE970S-BYX;6Q02P$"% ,4    "  N<XY4;'<M
MW$<"   Q!0  &0              @('N' $ >&PO=V]R:W-H965T<R]S:&5E
M=#,W+GAM;%!+ 0(4 Q0    ( "YSCE1*'6SQV@(  ($&   9
M  " @6P? 0!X;"]W;W)K<VAE971S+W-H965T,S@N>&UL4$L! A0#%     @
M+G..5,"HCJ#8 @  0@8  !D              ("!?2(! 'AL+W=O<FMS:&5E
M=',O<VAE970S.2YX;6Q02P$"% ,4    "  N<XY4C4 EM+@"   O!@  &0
M            @(&,)0$ >&PO=V]R:W-H965T<R]S:&5E=#0P+GAM;%!+ 0(4
M Q0    ( "YSCE3^>9U86 (  $X%   9              " @7LH 0!X;"]W
M;W)K<VAE971S+W-H965T-#$N>&UL4$L! A0#%     @ +G..5$D7RS-\ P
M-@D  !D              ("!"BL! 'AL+W=O<FMS:&5E=',O<VAE970T,BYX
M;6Q02P$"% ,4    "  N<XY4%&],P;<"  !%!@  &0              @(&]
M+@$ >&PO=V]R:W-H965T<R]S:&5E=#0S+GAM;%!+ 0(4 Q0    ( "YSCE27
M[N51^0(  .P&   9              " @:LQ 0!X;"]W;W)K<VAE971S+W-H
M965T-#0N>&UL4$L! A0#%     @ +G..5%B(0II7"   #",  !D
M     ("!VS0! 'AL+W=O<FMS:&5E=',O<VAE970T-2YX;6Q02P$"% ,4
M"  N<XY4#,=4-%@'   /%@  &0              @(%I/0$ >&PO=V]R:W-H
M965T<R]S:&5E=#0V+GAM;%!+ 0(4 Q0    ( "YSCE2];ZT?< ,  #0)   9
M              " @?A$ 0!X;"]W;W)K<VAE971S+W-H965T-#<N>&UL4$L!
M A0#%     @ +G..5'B*PF<A P  \@<  !D              ("!GT@! 'AL
M+W=O<FMS:&5E=',O<VAE970T."YX;6Q02P$"% ,4    "  N<XY4FX+XEQ(#
M  ""!@  &0              @('W2P$ >&PO=V]R:W-H965T<R]S:&5E=#0Y
M+GAM;%!+ 0(4 Q0    ( "YSCE3TLB>I80,  * (   9              "
M@4!/ 0!X;"]W;W)K<VAE971S+W-H965T-3 N>&UL4$L! A0#%     @ +G..
M5#5.M*&!!P  EBD  !D              ("!V%(! 'AL+W=O<FMS:&5E=',O
M<VAE970U,2YX;6Q02P$"% ,4    "  N<XY4?7_HQ&4)  #E.@  &0
M        @(&06@$ >&PO=V]R:W-H965T<R]S:&5E=#4R+GAM;%!+ 0(4 Q0
M   ( "YSCE2L3MC1R14  &>E   9              " @2QD 0!X;"]W;W)K
M<VAE971S+W-H965T-3,N>&UL4$L! A0#%     @ +G..5$"T@VZ, P  YPP
M !D              ("!+'H! 'AL+W=O<FMS:&5E=',O<VAE970U-"YX;6Q0
M2P$"% ,4    "  N<XY42G)/GN\%   ^,0  &0              @('O?0$
M>&PO=V]R:W-H965T<R]S:&5E=#4U+GAM;%!+ 0(4 Q0    ( "YSCE3@77%X
MY@(  "0(   9              " @16$ 0!X;"]W;W)K<VAE971S+W-H965T
M-38N>&UL4$L! A0#%     @ +G..5(Y(*5*% P  TPL  !D
M ("!,H<! 'AL+W=O<FMS:&5E=',O<VAE970U-RYX;6Q02P$"% ,4    "  N
M<XY4M@%%JV,"  # !@  &0              @('NB@$ >&PO=V]R:W-H965T
M<R]S:&5E=#4X+GAM;%!+ 0(4 Q0    ( "YSCE3LBNUU-@,  )H(   9
M          " @8B- 0!X;"]W;W)K<VAE971S+W-H965T-3DN>&UL4$L! A0#
M%     @ +G..5'&WS6]L @  /@8  !D              ("!]9 ! 'AL+W=O
M<FMS:&5E=',O<VAE970V,"YX;6Q02P$"% ,4    "  N<XY4?M5[+D8"  "(
M!0  &0              @(&8DP$ >&PO=V]R:W-H965T<R]S:&5E=#8Q+GAM
M;%!+ 0(4 Q0    ( "YSCE3'+O^ZS@(  '4'   9              " @166
M 0!X;"]W;W)K<VAE971S+W-H965T-C(N>&UL4$L! A0#%     @ +G..5'[H
MB6E( @  ?04  !D              ("!&ID! 'AL+W=O<FMS:&5E=',O<VAE
M970V,RYX;6Q02P$"% ,4    "  N<XY4X]M)1O\!   Q!   &0
M    @(&9FP$ >&PO=V]R:W-H965T<R]S:&5E=#8T+GAM;%!+ 0(4 Q0    (
M "YSCE2&3WO(;@,  ,0,   9              " @<^= 0!X;"]W;W)K<VAE
M971S+W-H965T-C4N>&UL4$L! A0#%     @ +G..5'M0!%)( P  2 P  !D
M             ("!=*$! 'AL+W=O<FMS:&5E=',O<VAE970V-BYX;6Q02P$"
M% ,4    "  N<XY45@HMS9 "   S"   &0              @('SI $ >&PO
M=V]R:W-H965T<R]S:&5E=#8W+GAM;%!+ 0(4 Q0    ( "YSCE04.Q[\/P0
M '\2   9              " @;JG 0!X;"]W;W)K<VAE971S+W-H965T-C@N
M>&UL4$L! A0#%     @ +G..5/34"V]< @  $P8  !D              ("!
M,*P! 'AL+W=O<FMS:&5E=',O<VAE970V.2YX;6Q02P$"% ,4    "  N<XY4
MD4+HW>8#  !5#P  &0              @('#K@$ >&PO=V]R:W-H965T<R]S
M:&5E=#<P+GAM;%!+ 0(4 Q0    ( "YSCE0V)'6JSP$  "4$   9
M      " @>"R 0!X;"]W;W)K<VAE971S+W-H965T-S$N>&UL4$L! A0#%
M  @ +G..5$5U;N-S P  O@H  !D              ("!YK0! 'AL+W=O<FMS
M:&5E=',O<VAE970W,BYX;6Q02P$"% ,4    "  N<XY4%FI::=8"  #("
M&0              @(&0N $ >&PO=V]R:W-H965T<R]S:&5E=#<S+GAM;%!+
M 0(4 Q0    ( "YSCE3LQY=!A ,  %H*   9              " @9V[ 0!X
M;"]W;W)K<VAE971S+W-H965T-S0N>&UL4$L! A0#%     @ +G..5 Q/XQ.Y
M @  XP<  !D              ("!6+\! 'AL+W=O<FMS:&5E=',O<VAE970W
M-2YX;6Q02P$"% ,4    "  N<XY43:(V7]("  "4"   &0
M@(%(P@$ >&PO=V]R:W-H965T<R]S:&5E=#<V+GAM;%!+ 0(4 Q0    ( "YS
MCE1&\"'ZW (  ,H(   9              " @5'% 0!X;"]W;W)K<VAE971S
M+W-H965T-S<N>&UL4$L! A0#%     @ +G..5#%IU+?, P  \0L  !D
M         ("!9,@! 'AL+W=O<FMS:&5E=',O<VAE970W."YX;6Q02P$"% ,4
M    "  N<XY4/'SBEXD&  !<(0  &0              @(%GS $ >&PO=V]R
M:W-H965T<R]S:&5E=#<Y+GAM;%!+ 0(4 Q0    ( "YSCE36)M?N, ,  #(*
M   9              " @2?3 0!X;"]W;W)K<VAE971S+W-H965T.# N>&UL
M4$L! A0#%     @ +G..5(A/1;J3 @  L@<  !D              ("!CM8!
M 'AL+W=O<FMS:&5E=',O<VAE970X,2YX;6Q02P$"% ,4    "  N<XY4>B(V
MJ,H$  !6%   &0              @(%8V0$ >&PO=V]R:W-H965T<R]S:&5E
M=#@R+GAM;%!+ 0(4 Q0    ( "YSCE2:[3KD^P0  %<<   9
M  " @5G> 0!X;"]W;W)K<VAE971S+W-H965T.#,N>&UL4$L! A0#%     @
M+G..5,Z/0$WZ P  LP\  !D              ("!B^,! 'AL+W=O<FMS:&5E
M=',O<VAE970X-"YX;6Q02P$"% ,4    "  N<XY4XPDL<DT%  !%%P  &0
M            @(&\YP$ >&PO=V]R:W-H965T<R]S:&5E=#@U+GAM;%!+ 0(4
M Q0    ( "YSCE0<AC&5"@4  .L4   9              " @4#M 0!X;"]W
M;W)K<VAE971S+W-H965T.#8N>&UL4$L! A0#%     @ +G..5$,<NL-% P
M% L  !D              ("!@?(! 'AL+W=O<FMS:&5E=',O<VAE970X-RYX
M;6Q02P$"% ,4    "  N<XY4(-?L?^P"  #F"   &0              @(']
M]0$ >&PO=V]R:W-H965T<R]S:&5E=#@X+GAM;%!+ 0(4 Q0    ( "YSCE3G
MT36[B ,  ,X,   9              " @2#Y 0!X;"]W;W)K<VAE971S+W-H
M965T.#DN>&UL4$L! A0#%     @ +G..5/V3*%G+ P  0@P  !D
M     ("!W_P! 'AL+W=O<FMS:&5E=',O<VAE970Y,"YX;6Q02P$"% ,4
M"  N<XY4^EPS@[($   ?$   &0              @('A  ( >&PO=V]R:W-H
M965T<R]S:&5E=#DQ+GAM;%!+ 0(4 Q0    ( "YSCE15.&0!#@0  ,<5   9
M              " @<H% @!X;"]W;W)K<VAE971S+W-H965T.3(N>&UL4$L!
M A0#%     @ +G..5&JT%X[) @  " <  !D              ("!#PH" 'AL
M+W=O<FMS:&5E=',O<VAE970Y,RYX;6Q02P$"% ,4    "  N<XY4,0%!+N0#
M  "+"P  &0              @($/#0( >&PO=V]R:W-H965T<R]S:&5E=#DT
M+GAM;%!+ 0(4 Q0    ( "YSCE2FR@97]@,  *D,   9              "
M@2H1 @!X;"]W;W)K<VAE971S+W-H965T.34N>&UL4$L! A0#%     @ +G..
M5(^)^(IN @  *P8  !D              ("!5Q4" 'AL+W=O<FMS:&5E=',O
M<VAE970Y-BYX;6Q02P$"% ,4    "  N<XY4OU^2_&$"  "M!0  &0
M        @('\%P( >&PO=V]R:W-H965T<R]S:&5E=#DW+GAM;%!+ 0(4 Q0
M   ( "YSCE2:@\Q>S (  *,'   9              " @90: @!X;"]W;W)K
M<VAE971S+W-H965T.3@N>&UL4$L! A0#%     @ +G..5-_8XF4[ P  2@L
M !D              ("!EQT" 'AL+W=O<FMS:&5E=',O<VAE970Y.2YX;6Q0
M2P$"% ,4    "  N<XY4+W??3VD"  !2!@  &@              @($)(0(
M>&PO=V]R:W-H965T<R]S:&5E=#$P,"YX;6Q02P$"% ,4    "  N<XY4PC^3
M-L<#  "C#   &@              @(&J(P( >&PO=V]R:W-H965T<R]S:&5E
M=#$P,2YX;6Q02P$"% ,4    "  N<XY4$WB5N0X#  #C"0  &@
M    @(&I)P( >&PO=V]R:W-H965T<R]S:&5E=#$P,BYX;6Q02P$"% ,4
M"  N<XY4>LXF*\T"  "+"   &@              @('O*@( >&PO=V]R:W-H
M965T<R]S:&5E=#$P,RYX;6Q02P$"% ,4    "  N<XY4&NZ%*Z<"   J"
M&@              @('T+0( >&PO=V]R:W-H965T<R]S:&5E=#$P-"YX;6Q0
M2P$"% ,4    "  N<XY41BC66?$!   +!   &@              @('3, (
M>&PO=V]R:W-H965T<R]S:&5E=#$P-2YX;6Q02P$"% ,4    "  N<XY4^%]G
M0(("  "M!@  &@              @('\,@( >&PO=V]R:W-H965T<R]S:&5E
M=#$P-BYX;6Q02P$"% ,4    "  N<XY4Q\E$SS0#   ,$P  #0
M    @ &V-0( >&PO<W1Y;&5S+GAM;%!+ 0(4 Q0    ( "YSCE27BKL<P
M !,"   +              "  14Y @!?<F5L<R\N<F5L<U!+ 0(4 Q0    (
M "YSCE2@RRTM,P<   -%   /              "  ?XY @!X;"]W;W)K8F]O
M:RYX;6Q02P$"% ,4    "  N<XY4XPVLQ_\"  !%/@  &@
M@ %>00( >&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'-02P$"% ,4    "  N
M<XY4H4#6(VT"  #_.P  $P              @ &51 ( 6T-O;G1E;G1?5'EP
=97-=+GAM;%!+!08     <@!R %P?   S1P(    !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>129
<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>130
<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>131
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.22.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>362</ContextCount>
  <ElementCount>444</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>95</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>7</UnitCount>
  <MyReports>
    <Report instance="dsgx-20220131x40f.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-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>00100 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedBalanceSheets</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>00105 - Statement - Consolidated Balance Sheets (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals</Role>
      <ShortName>Consolidated Balance Sheets (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>00200 - Statement - Consolidated Statements of Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations</Role>
      <ShortName>Consolidated Statements of Operations</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>00300 - Statement - Consolidated Statements of Comprehensive Income</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome</Role>
      <ShortName>Consolidated Statements of Comprehensive Income</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>00305 - Statement - Consolidated Statements of Comprehensive Income (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals</Role>
      <ShortName>Consolidated Statements of Comprehensive Income (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>00400 - Statement - Consolidated Statements of Shareholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity</Role>
      <ShortName>Consolidated Statements of Shareholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>00500 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.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-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>12301 - Disclosure - Subsequent Event</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSubsequentEvent</Role>
      <ShortName>Subsequent Event</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.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>32</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>30203 - Disclosure - Basis of Presentation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureBasisOfPresentationTables</Role>
      <ShortName>Basis of Presentation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureBasisOfPresentation</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.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>34</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.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>35</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.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>36</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.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>37</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.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>38</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.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>39</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.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>40</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.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>41</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.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>42</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>31503 - Disclosure - Share Capital (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureShareCapitalTables</Role>
      <ShortName>Share Capital (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureShareCapital</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.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>44</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.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>45</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>31803 - Disclosure - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesTables</Role>
      <ShortName>Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureIncomeTaxes</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.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>47</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.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>48</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.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>49</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.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>50</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>40201 - Disclosure - Basis of Presentation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureBasisOfPresentationDetails</Role>
      <ShortName>Basis of Presentation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureBasisOfPresentationTables</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.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>52</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.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>53</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals</Role>
      <ShortName>Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.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>55</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.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>56</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.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>57</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.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>58</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.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>59</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.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>60</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.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>61</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.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>62</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.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>63</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.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>64</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>40801 - Disclosure - Property and Equipment - Property and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails</Role>
      <ShortName>Property and Equipment - Property and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.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>66</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.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>67</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.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>68</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.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>69</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.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>70</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.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>71</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.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>72</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.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>73</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.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>74</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.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/DisclosureShareCapitalTables</ParentRole>
      <Position>75</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>41502 - Disclosure - Share Capital - Common Shares Outstanding (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails</Role>
      <ShortName>Share Capital - Common Shares Outstanding (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.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>77</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.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>78</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.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>79</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.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>80</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.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>81</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.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>82</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>41705 - Disclosure - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails</Role>
      <ShortName>Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.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>84</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>41707 - 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>85</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>41708 - 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>86</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>41709 - 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>87</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails</Role>
      <ShortName>Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>88</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails</Role>
      <ShortName>Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>89</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails</Role>
      <ShortName>Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>90</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails</Role>
      <ShortName>Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>91</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails</Role>
      <ShortName>Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>92</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails</Role>
      <ShortName>Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>93</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>41807 - 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>94</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.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>95</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 1 (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs 1 (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables</ParentRole>
      <Position>96</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R97.htm</HtmlFileName>
      <LongName>41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 2 (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs 2 (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables</ParentRole>
      <Position>97</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R98.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>98</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R99.htm</HtmlFileName>
      <LongName>42002 - Disclosure - Other Charges - Restructuring Provision (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails</Role>
      <ShortName>Other Charges - Restructuring Provision (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>99</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R100.htm</HtmlFileName>
      <LongName>42003 - Disclosure - Other Charges - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails</Role>
      <ShortName>Other Charges - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>100</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R101.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>101</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R102.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>102</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R103.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>103</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R104.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>104</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R105.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>105</Position>
    </Report>
    <Report instance="dsgx-20220131x40f.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R106.htm</HtmlFileName>
      <LongName>42301 - Disclosure - Subsequent Event (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSubsequentEventDetails</Role>
      <ShortName>Subsequent Event (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureSubsequentEvent</ParentRole>
      <Position>106</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="40-F" original="dsgx-20220131x40f.htm">dsgx-20220131x40f.htm</File>
    <File doctype="40-F" original="dsgx-20220131xex99d2.htm">dsgx-20220131xex99d2.htm</File>
    <File>dsgx-20220131.xsd</File>
    <File>dsgx-20220131_cal.xml</File>
    <File>dsgx-20220131_def.xml</File>
    <File>dsgx-20220131_lab.xml</File>
    <File>dsgx-20220131_pre.xml</File>
    <File>dsgx-20220131xex99d1.htm</File>
    <File>dsgx-20220131xex99d3.htm</File>
    <File>dsgx-20220131xex99d4.htm</File>
    <File>dsgx-20220131xex99d5.htm</File>
    <File>dsgx-20220131xex99d6.htm</File>
    <File>dsgx-20220131xex99d7.htm</File>
  </InputFiles>
  <SupplementalFiles>
    <File>dsgx-20220131xex99d2001.jpg</File>
    <File>dsgx-20220131xex99d2002.jpg</File>
    <File>dsgx-20220131xex99d2007.jpg</File>
    <File>dsgx-20220131xex99d2009.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="1">http://fasb.org/srt/2021-01-31</BaseTaxonomy>
    <BaseTaxonomy items="1267">http://fasb.org/us-gaap/2021-01-31</BaseTaxonomy>
    <BaseTaxonomy items="43">http://xbrl.sec.gov/dei/2021q4</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>134
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "instance": {
  "dsgx-20220131x40f.htm dsgx-20220131xex99d2.htm": {
   "axisCustom": 0,
   "axisStandard": 31,
   "contextCount": 362,
   "dts": {
    "calculationLink": {
     "local": [
      "dsgx-20220131_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "dsgx-20220131_def.xml"
     ]
    },
    "inline": {
     "local": [
      "dsgx-20220131x40f.htm",
      "dsgx-20220131xex99d2.htm"
     ]
    },
    "labelLink": {
     "local": [
      "dsgx-20220131_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "dsgx-20220131_pre.xml"
     ]
    },
    "schema": {
     "local": [
      "dsgx-20220131.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",
      "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": 713,
   "entityCount": 1,
   "hidden": {
    "http://fasb.org/us-gaap/2021-01-31": 10,
    "http://www.descartes.com/20220131": 2,
    "http://xbrl.sec.gov/dei/2021q4": 6,
    "total": 18
   },
   "keyCustom": 56,
   "keyStandard": 388,
   "memberCustom": 47,
   "memberStandard": 42,
   "nsprefix": "dsgx",
   "nsuri": "http://www.descartes.com/20220131",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131x40f.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131x40f.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R100": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RestructuringCharges",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "42003 - Disclosure - Other Charges - Additional information (Details)",
     "role": "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
     "shortName": "Other Charges - Additional information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_5_1_2020_To_7_31_2020_us-gaap_RestructuringPlanAxis_dsgx_Fiscal2021RestructuringPlanMember_uwsr5UeuT0mJDmP5YmRbvw",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:RestructuringCharges",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R101": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncreaseDecreaseInAccountsReceivable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncreaseDecreaseInAccountsReceivable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R102": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_srt_StatementGeographicalAxis_country_US_VbxbVoj3b06INSbM_Y5HeQ",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R103": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BSaZuJ8iV0GnzVZKjRCLhg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R104": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NoncurrentAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NoncurrentAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R105": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfReportableSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_segment_KK23ak5saEO7Bet-BMU5GQ",
      "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": [
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfReportableSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_segment_KK23ak5saEO7Bet-BMU5GQ",
      "xsiNil": "false"
     }
    },
    "R106": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "42301 - Disclosure - Subsequent Event (Details)",
     "role": "http://www.descartes.com/role/DisclosureSubsequentEventDetails",
     "shortName": "Subsequent Event (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:SubsequentEventsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_R2B2bfsFSUCWd9P9iuu-Sg",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00100 - Statement - Consolidated Balance Sheets",
     "role": "http://www.descartes.com/role/StatementConsolidatedBalanceSheets",
     "shortName": "Consolidated Balance Sheets",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dsgx:ShareCapitalTextBlock",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dsgx:ShareCapitalTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockSharesIssued",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00105 - Statement - Consolidated Balance Sheets (Parentheticals)",
     "role": "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals",
     "shortName": "Consolidated Balance Sheets (Parentheticals)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockSharesIssued",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "xsiNil": "false"
     }
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "12301 - Disclosure - Subsequent Event",
     "role": "http://www.descartes.com/role/DisclosureSubsequentEvent",
     "shortName": "Subsequent Event",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dsgx:ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30203 - Disclosure - Basis of Presentation (Tables)",
     "role": "http://www.descartes.com/role/DisclosureBasisOfPresentationTables",
     "shortName": "Basis of Presentation (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dsgx:ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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": [
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dsgx:OtherReceivablesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00200 - Statement - Consolidated Statements of Operations",
     "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations",
     "shortName": "Consolidated Statements of Operations",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:GoodwillDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "srt:ScheduleOfCondensedCashFlowStatementTableTextBlock",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "srt:ScheduleOfCondensedCashFlowStatementTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "dsgx:ShareCapitalTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31503 - Disclosure - Share Capital (Tables)",
     "role": "http://www.descartes.com/role/DisclosureShareCapitalTables",
     "shortName": "Share Capital (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "dsgx:ShareCapitalTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31803 - Disclosure - Income Taxes (Tables)",
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesTables",
     "shortName": "Income Taxes (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00300 - Statement - Consolidated Statements of Comprehensive Income",
     "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome",
     "shortName": "Consolidated Statements of Comprehensive Income",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:ForeignCurrencyTransactionGainLossBeforeTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40201 - Disclosure - Basis of Presentation (Details)",
     "role": "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
     "shortName": "Basis of Presentation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:ForeignCurrencyTransactionGainLossBeforeTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_2_21_2020_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_g1PCOnoy6EW5BDn__nPeaw",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw",
      "decimals": "-3",
      "lang": null,
      "name": "dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAcquiredFromAcquisition",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)",
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
     "shortName": "Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember__qgAD3-fcka-ZZddXq8ZNw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAcquiredFromAcquisition",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_OpXQurELgE6ZWTVHR5cUXw",
      "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",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2020_To_1_31_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PeoplevoxMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_OpXQurELgE6ZWTVHR5cUXw",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:BusinessAcquisitionProFormaInformationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessAcquisitionsProFormaRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessAcquisitionsProFormaRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R57": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "dsgx:DerivativeInstrumentSharesOfCommonStockHeld",
      "reportCount": 1,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "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": [
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "2",
      "lang": null,
      "name": "dsgx:DerivativeInstrumentCommonSharesHeldPerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw",
      "xsiNil": "false"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DerivativeAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DerivativeAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pN3gJRdEbUmTra2ded8SGA",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2020_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_CfGPFGAsT0yBB-18Em2TxQ",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00305 - Statement - Consolidated Statements of Comprehensive Income (Parentheticals)",
     "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals",
     "shortName": "Consolidated Statements of Comprehensive Income (Parentheticals)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R60": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:UnbilledReceivablesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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": [
       "p",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:UnbilledReceivablesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ProvisionForDoubtfulAccounts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "dsgx:OtherReceivablesTableTextBlock",
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "dsgx:AmountsRecoverableFromFundsHeldInEscrow",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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": [
       "p",
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "dsgx:AmountsRecoverableFromFundsHeldInEscrow",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40801 - Disclosure - Property and Equipment - Property and Equipment (Details)",
     "role": "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails",
     "shortName": "Property and Equipment - 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-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsNet",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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": [
       "p",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R68": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "srt:ScheduleOfCondensedCashFlowStatementTableTextBlock",
       "us-gaap:GoodwillDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R69": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_uILb96-R5U-JARfsjROcqQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00400 - Statement - Consolidated Statements of Shareholders' Equity",
     "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity",
     "shortName": "Consolidated Statements of Shareholders' Equity",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2019_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_uILb96-R5U-JARfsjROcqQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R70": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:LettersOfCreditOutstandingAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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": [
       "p",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:LettersOfCreditOutstandingAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R71": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "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-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseRemainingLeaseTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R72": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R73": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R74": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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": [
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R75": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock",
       "dsgx:ShareCapitalTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2019_To_1_31_2020_FO1J2FSlm0WrA4hxd_BGng",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockIssuedDuringPeriodSharesNewIssues",
      "reportCount": 1,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "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": [
       "p",
       "dsgx:ShareCapitalTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:ProceedsFromStockOptionsExercised",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R76": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock",
       "dsgx:ShareCapitalTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockSharesOutstanding",
      "reportCount": 1,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41502 - Disclosure - Share Capital - Common Shares Outstanding (Details)",
     "role": "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails",
     "shortName": "Share Capital - Common Shares Outstanding (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock",
       "dsgx:ShareCapitalTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2019_uG_65RiDbkmgzyTBRRPLRA",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:CommonStockSharesOutstanding",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "xsiNil": "false"
     }
    },
    "R77": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_N5hco1tb6U67Swm5ryMSmg",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "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": [
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_N5hco1tb6U67Swm5ryMSmg",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "xsiNil": "false"
     }
    },
    "R78": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "xsiNil": "false"
     }
    },
    "R79": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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": [
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00500 - Statement - Consolidated Statements of Cash Flows",
     "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows",
     "shortName": "Consolidated Statements of Cash Flows",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R80": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R81": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ",
      "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",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ",
      "xsiNil": "false"
     }
    },
    "R82": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "lang": "en-US",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R83": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41705 - Disclosure - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)",
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails",
     "shortName": "Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw",
      "xsiNil": "false"
     }
    },
    "R84": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
      "reportCount": 1,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "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": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderapprovedStockOptionPlanMember_mv4aP4YKFUmSTtLnzvVUqw",
      "decimals": "INF",
      "lang": null,
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "xsiNil": "false"
     }
    },
    "R85": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber",
      "reportCount": 1,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41707 - 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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_NOnjH7nFK0qoT6v9I3x1og",
      "decimals": null,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R86": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
      "reportCount": 1,
      "unitRef": "Unit_Divide_USD_shares_o3NzbEI8HUCkuQ7k4o52aw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41708 - 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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_QcHoKeBcMUe6ErdUgHM8Ng",
      "decimals": null,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R87": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "dsgx:CRSUAwardsOutstandingNumber",
      "reportCount": 1,
      "unitRef": "Unit_Standard_shares_QVzsaxtUaEi3l_tj6cVs2g",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41709 - 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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "lang": "en-US",
      "name": "dsgx:CRSUAwardsWeightedAverageContractualLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R88": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)",
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
     "shortName": "Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_CA_dp4Lg9uba0meUHvS8vBMVA",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R89": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentIncomeTaxExpenseBenefit",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)",
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
     "shortName": "Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_us-gaap_IncomeTaxAuthorityAxis_country_CA_dp4Lg9uba0meUHvS8vBMVA",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:CurrentIncomeTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "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-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R90": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)",
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails",
     "shortName": "Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R91": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)",
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails",
     "shortName": "Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "3",
      "lang": null,
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ",
      "xsiNil": "false"
     }
    },
    "R92": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLossCarryforwards",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)",
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails",
     "shortName": "Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLossCarryforwards",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R93": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LiabilityForUncertainTaxPositionsNoncurrent",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)",
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails",
     "shortName": "Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R94": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "dsgx:IncomeBeforeTaxesPercent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41807 - Disclosure - Income Taxes - Additional information (Details)",
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails",
     "shortName": "Income Taxes - Additional information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "dsgx:IncomeBeforeTaxesPercent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_xzo7w5g9XEC-6PYm3CGyiQ",
      "xsiNil": "false"
     }
    },
    "R95": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ContractWithCustomerLiability",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2020_n0JBq4GjuUOiy0MwtlWqRg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ContractWithCustomerLiability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R96": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:CapitalizedContractCostNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 1 (Details)",
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs 1 (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:CapitalizedContractCostNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R97": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs 2 (Details)",
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs 2 (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2022_vGU7trQ6JEeTntC-02SO5Q",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R98": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessCombinationAcquisitionRelatedCosts",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "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",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    },
    "R99": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "As_Of_1_31_2021_m-RKl1jsfEKKnKC8tI7EGw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RestructuringReserve",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "42002 - Disclosure - Other Charges - Restructuring Provision (Details)",
     "role": "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
     "shortName": "Other Charges - Restructuring Provision (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220131xex99d2.htm",
      "contextRef": "Duration_2_1_2021_To_1_31_2022_WoFhHpDO0EKcQIF65DgIZg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:RestructuringReserveAccrualAdjustment1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_IzGmdDYzOEmoR8RbBUgbEQ",
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 95,
   "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/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "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 (US)"
       }
      }
     },
     "localname": "US",
     "nsuri": "http://xbrl.sec.gov/country/2021",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "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": [
      "r686"
     ],
     "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": [
      "r686"
     ],
     "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": [
      "r684",
      "r685",
      "r686"
     ],
     "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": [
      "r684",
      "r685",
      "r686"
     ],
     "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": [
      "r684",
      "r685",
      "r686"
     ],
     "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": [
      "r685",
      "r686"
     ],
     "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": [
      "r684",
      "r685",
      "r686"
     ],
     "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": [
      "r680"
     ],
     "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": [
      "r682"
     ],
     "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/DisclosureAccruedLiabilities",
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables",
      "http://www.descartes.com/role/DisclosureAcquisitions",
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsTables",
      "http://www.descartes.com/role/DisclosureBasisOfPresentation",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationTables",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables",
      "http://www.descartes.com/role/DisclosureDescriptionOfBusiness",
      "http://www.descartes.com/role/DisclosureEarningsPerShare",
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareTables",
      "http://www.descartes.com/role/DisclosureFairValueMeasurements",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables",
      "http://www.descartes.com/role/DisclosureGoodwill",
      "http://www.descartes.com/role/DisclosureGoodwillDetails",
      "http://www.descartes.com/role/DisclosureGoodwillTables",
      "http://www.descartes.com/role/DisclosureIncomeTaxes",
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables",
      "http://www.descartes.com/role/DisclosureIntangibleAssets",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsTables",
      "http://www.descartes.com/role/DisclosureInventory",
      "http://www.descartes.com/role/DisclosureLeases",
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails",
      "http://www.descartes.com/role/DisclosureLeasesDetails",
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureLeasesTables",
      "http://www.descartes.com/role/DisclosureLongTermDebt",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails",
      "http://www.descartes.com/role/DisclosureOtherCharges",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesTables",
      "http://www.descartes.com/role/DisclosureOtherReceivables",
      "http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails",
      "http://www.descartes.com/role/DisclosureOtherReceivablesTables",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipment",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables",
      "http://www.descartes.com/role/DisclosureSegmentedInformation",
      "http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables",
      "http://www.descartes.com/role/DisclosureShareCapital",
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalTables",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlans",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails",
      "http://www.descartes.com/role/DisclosureSubsequentEvent",
      "http://www.descartes.com/role/DisclosureSubsequentEventDetails",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivable",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails",
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r682"
     ],
     "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": [
      "r682"
     ],
     "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": [
      "r688"
     ],
     "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": [
      "r682"
     ],
     "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": [
      "r682"
     ],
     "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": [
      "r682"
     ],
     "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": [
      "r700"
     ],
     "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/DisclosureAccruedLiabilities",
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables",
      "http://www.descartes.com/role/DisclosureAcquisitions",
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsTables",
      "http://www.descartes.com/role/DisclosureBasisOfPresentation",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationTables",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables",
      "http://www.descartes.com/role/DisclosureDescriptionOfBusiness",
      "http://www.descartes.com/role/DisclosureEarningsPerShare",
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareTables",
      "http://www.descartes.com/role/DisclosureFairValueMeasurements",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables",
      "http://www.descartes.com/role/DisclosureGoodwill",
      "http://www.descartes.com/role/DisclosureGoodwillDetails",
      "http://www.descartes.com/role/DisclosureGoodwillTables",
      "http://www.descartes.com/role/DisclosureIncomeTaxes",
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables",
      "http://www.descartes.com/role/DisclosureIntangibleAssets",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsTables",
      "http://www.descartes.com/role/DisclosureInventory",
      "http://www.descartes.com/role/DisclosureLeases",
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails",
      "http://www.descartes.com/role/DisclosureLeasesDetails",
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureLeasesTables",
      "http://www.descartes.com/role/DisclosureLongTermDebt",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails",
      "http://www.descartes.com/role/DisclosureOtherCharges",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesTables",
      "http://www.descartes.com/role/DisclosureOtherReceivables",
      "http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails",
      "http://www.descartes.com/role/DisclosureOtherReceivablesTables",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipment",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables",
      "http://www.descartes.com/role/DisclosureSegmentedInformation",
      "http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables",
      "http://www.descartes.com/role/DisclosureShareCapital",
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalTables",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlans",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails",
      "http://www.descartes.com/role/DisclosureSubsequentEvent",
      "http://www.descartes.com/role/DisclosureSubsequentEventDetails",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivable",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails",
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "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": [
      "r681"
     ],
     "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": [
      "r683"
     ],
     "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/20220131",
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_AdjustmentForRoundingMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents an adjustment made for rounding in the document.",
        "label": "Adjustment for rounding"
       }
      }
     },
     "localname": "AdjustmentForRoundingMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_AfterTaxYear2026Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to after tax year 2026.",
        "label": "Thereafter"
       }
      }
     },
     "localname": "AfterTaxYear2026Member",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_AljexSoftwareIncMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information about the acquisition of Aljex Software, Inc.",
        "label": "Aljex Software, Inc. [Member]"
       }
      }
     },
     "localname": "AljexSoftwareIncMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_AmountsRecoverableFromFundsHeldInEscrow": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recoverable from funds held In escrow related to acquisitions.",
        "label": "dsgx_AmountsRecoverableFromFundsHeldInEscrow",
        "terseLabel": "Amounts Recoverable from Funds Held in Escrow"
       }
      }
     },
     "localname": "AmountsRecoverableFromFundsHeldInEscrow",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_AsiaPacificIncomeTaxAuthorityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information related to Asia Pacific income tax authority",
        "label": "Asia Pacific Region"
       }
      }
     },
     "localname": "AsiaPacificIncomeTaxAuthorityMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_BaseAnnualFeePercent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The base annual fee percentage required for Directors participating in a share-based compensation plan.",
        "label": "dsgx_BaseAnnualFeePercent",
        "terseLabel": "Base Annual Fee, Percent"
       }
      }
     },
     "localname": "BaseAnnualFeePercent",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "dsgx_BesttransportMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents BestTransport.com Inc.",
        "label": "BestTransport [Member]"
       }
      }
     },
     "localname": "BesttransportMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business acquisition cost of acquired entity working capital adjustments.",
        "label": "Net working capital adjustments (receivable) / payable"
       }
      }
     },
     "localname": "BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments",
     "nsuri": "http://www.descartes.com/20220131",
     "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"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredPayable",
     "nsuri": "http://www.descartes.com/20220131",
     "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)"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets",
     "nsuri": "http://www.descartes.com/20220131",
     "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/20220131",
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of right-of-use assets acquired at the acquisition date.",
        "label": "dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets",
        "terseLabel": "Right-of-use assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets",
     "nsuri": "http://www.descartes.com/20220131",
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_COREKontainersAndShipTrackMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to CORE, Kontainers and ShipTrack.",
        "label": "CORE, Kontainers and ShipTrack [Member]"
       }
      }
     },
     "localname": "COREKontainersAndShipTrackMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "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/20220131",
     "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/20220131",
     "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": "dsgx_CRSUAwardsForfeitedInPeriod",
        "negatedLabel": "Number of Units Forfeited, CRSU (in shares)"
       }
      }
     },
     "localname": "CRSUAwardsForfeitedInPeriod",
     "nsuri": "http://www.descartes.com/20220131",
     "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/20220131",
     "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": "dsgx_CRSUAwardsOutstandingNumber",
        "periodEndLabel": "Number of Units Outstanding, CRSU (in shares)",
        "periodStartLabel": "Number of Units Outstanding, CRSU (in shares)"
       }
      }
     },
     "localname": "CRSUAwardsOutstandingNumber",
     "nsuri": "http://www.descartes.com/20220131",
     "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": "dsgx_CRSUAwardsVestedAndSettledInCash",
        "negatedLabel": "Number of Units Vested and settled in cash, CRSU (in shares)"
       }
      }
     },
     "localname": "CRSUAwardsVestedAndSettledInCash",
     "nsuri": "http://www.descartes.com/20220131",
     "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/20220131",
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_CashSettledRestrictedShareUnitsCompensationExpense": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash settled restricted share units compensation expense.",
        "label": "dsgx_CashSettledRestrictedShareUnitsCompensationExpense",
        "terseLabel": "Cash Settled Restricted Share Units Compensation Expense"
       }
      }
     },
     "localname": "CashSettledRestrictedShareUnitsCompensationExpense",
     "nsuri": "http://www.descartes.com/20220131",
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_CashSettledRestrictedShareUnitsVestingPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period which an employee's right to exercise an award is no longer contingent on satisfaction of either a service condition, market condition or a performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "dsgx_CashSettledRestrictedShareUnitsVestingPeriod",
        "terseLabel": "Cash Settled Restricted Share Units, Vesting Period (Year)"
       }
      }
     },
     "localname": "CashSettledRestrictedShareUnitsVestingPeriod",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "dsgx_CashsettledRestrictedSharePlanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A cash-settled restricted share plan adopted by an entity.",
        "label": "Cash-Settled Restricted Share Plan [Member]"
       }
      }
     },
     "localname": "CashsettledRestrictedSharePlanMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_CashsettledRestrictedShareUnitMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash-Settled Restricted Share Unit [Member]"
       }
      }
     },
     "localname": "CashsettledRestrictedShareUnitMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "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/20220131",
     "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"
       }
      }
     },
     "localname": "ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet",
     "nsuri": "http://www.descartes.com/20220131",
     "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/20220131",
     "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"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange",
     "nsuri": "http://www.descartes.com/20220131",
     "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"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the period of benefit, including renewals, associated with the asset for the incremental costs of obtaining a contract with a customer.",
        "label": "dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals",
        "terseLabel": "Costs to Obtain a Contract with a Customer, Period of Benefit Including Renewals (Year)"
       }
      }
     },
     "localname": "CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "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": "dsgx_DeferredShareUnitLiabilityNumberOfCommonShares",
        "terseLabel": "Deferred Share Unit Liability, Number of Common Shares (in shares)"
       }
      }
     },
     "localname": "DeferredShareUnitLiabilityNumberOfCommonShares",
     "nsuri": "http://www.descartes.com/20220131",
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "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": "dsgx_DeferredShareUnitsCompensationExpense",
        "terseLabel": "Deferred Share Units Compensation Expense"
       }
      }
     },
     "localname": "DeferredShareUnitsCompensationExpense",
     "nsuri": "http://www.descartes.com/20220131",
     "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": "dsgx_DeferredShareUnitsGrantsInPeriod",
        "terseLabel": "Deferred Share Units Grants In Period (in shares)"
       }
      }
     },
     "localname": "DeferredShareUnitsGrantsInPeriod",
     "nsuri": "http://www.descartes.com/20220131",
     "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/20220131",
     "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": "dsgx_DeferredShareUnitsOutstandingNumber",
        "terseLabel": "Deferred Share Units Outstanding Number (in shares)"
       }
      }
     },
     "localname": "DeferredShareUnitsOutstandingNumber",
     "nsuri": "http://www.descartes.com/20220131",
     "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": "dsgx_DeferredShareUnitsRedeemedAndSettledInCash",
        "terseLabel": "Deferred Share Units Redeemed and Settled in Cash (in shares)"
       }
      }
     },
     "localname": "DeferredShareUnitsRedeemedAndSettledInCash",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_DeferredTaxAssetsCorporateMinimumTaxes": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from corporate minimum taxes.",
        "label": "Corporate minimum taxes"
       }
      }
     },
     "localname": "DeferredTaxAssetsCorporateMinimumTaxes",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_DeferredTaxAssetsLiabilitesNet1": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allocation of valuation allowances, of deferred tax asset (liability) attributable to deductible differences and carryforwards, without jurisdictional netting.",
        "label": "Deferred Tax Assets Liabilities Net1",
        "totalLabel": "Net deferred income taxes, net of valuation allowance"
       }
      }
     },
     "localname": "DeferredTaxAssetsLiabilitesNet1",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_DeferredTaxAssetsNetBeforeValuationAllowance": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "dsgx_DeferredTaxAssetsLiabilitesNet1",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax assets.",
        "label": "dsgx_DeferredTaxAssetsNetBeforeValuationAllowance",
        "totalLabel": "Net deferred income taxes"
       }
      }
     },
     "localname": "DeferredTaxAssetsNetBeforeValuationAllowance",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_DeferredTaxCharges": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of accumulated depreciation of property, plant and equipment useful life.",
        "label": "Depreciation of Property, Plant and Equipment Useful Life [Table Text Block]",
        "terseLabel": "Schedule of depreciation of property, plant and equipment"
       }
      }
     },
     "localname": "DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "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": "dsgx_DerivativeInstrumentCommonSharesHeldPerShare",
        "terseLabel": "Derivative Instrument, Common Shares Held, Per Share (in dollars per share)"
       }
      }
     },
     "localname": "DerivativeInstrumentCommonSharesHeldPerShare",
     "nsuri": "http://www.descartes.com/20220131",
     "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": "dsgx_DerivativeInstrumentSharesOfCommonStockHeld",
        "terseLabel": "Derivative Instrument, Shares of Common Stock Held (in shares)"
       }
      }
     },
     "localname": "DerivativeInstrumentSharesOfCommonStockHeld",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_DirectorsAndOfficersMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Titles of individuals' stock options.",
        "label": "Directors and Officers [Member]"
       }
      }
     },
     "localname": "DirectorsAndOfficersMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in accruals for uncertain tax positions .",
        "label": "dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions",
        "terseLabel": "Increase (decrease) in accruals for uncertain tax positions"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_EmeaIncomeTaxAuthorityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents income tax authority for EMEA.",
        "label": "EMEA Region"
       }
      }
     },
     "localname": "EmeaIncomeTaxAuthorityMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_EquipmentInstalledWithCustomersMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents equipment installed with customers.",
        "label": "Equipment Installed With Customers [Member]"
       }
      }
     },
     "localname": "EquipmentInstalledWithCustomersMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_ExistingTechnologyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information about existing technology.",
        "label": "Existing Technology [Member]"
       }
      }
     },
     "localname": "ExistingTechnologyMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_Fiscal2021RestructuringPlanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the Fiscal 2021 Restructuring Plan.",
        "label": "Fiscal 2021 Restructuring Plan [Member]"
       }
      }
     },
     "localname": "Fiscal2021RestructuringPlanMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_GreenmileMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to GreenMile.",
        "label": "GreenMile [Member]"
       }
      }
     },
     "localname": "GreenmileMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_IncomeBeforeTaxesPercent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Income tax expense expressed as a percentage of income before taxes.",
        "label": "dsgx_IncomeBeforeTaxesPercent",
        "terseLabel": "Income Before Taxes, Percent"
       }
      }
     },
     "localname": "IncomeBeforeTaxesPercent",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "dsgx_IncreaseDecreaseInOperatingLeaseLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 3.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": "dsgx_IncreaseDecreaseInOperatingLeaseLiabilities",
        "verboseLabel": "Operating leases"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingLeaseLiabilities",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_KontainersMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to Kontainers.",
        "label": "Kontainers [Member]"
       }
      }
     },
     "localname": "KontainersMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSubsequentEventDetails"
     ],
     "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"
       }
      }
     },
     "localname": "NetWorkingCapitalAdjustmentsReceivableFromAcquisitions",
     "nsuri": "http://www.descartes.com/20220131",
     "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/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_NotesToFinancialStatementsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Notes To Financial Statements [Abstract]"
       }
      }
     },
     "localname": "NotesToFinancialStatementsAbstract",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_OtherCountriesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents other countries.",
        "label": "Other Countries [Member]"
       }
      }
     },
     "localname": "OtherCountriesMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "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/20220131",
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "dsgx_OverallotmentOption": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of rights given to the underwriter to sell additional shares over the initial allotment.",
        "label": "dsgx_OverallotmentOption",
        "terseLabel": "Over-Allotment Option"
       }
      }
     },
     "localname": "OverallotmentOption",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShare",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_PeoplevoxMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to Peoplevox.",
        "label": "Peoplevox [Member]"
       }
      }
     },
     "localname": "PeoplevoxMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_PercentageOfAccountReceivable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represent of percentage item",
        "label": "Percentage of account receivable"
       }
      }
     },
     "localname": "PercentageOfAccountReceivable",
     "nsuri": "http://www.descartes.com/20220131",
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_PortrixMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to Portrix.",
        "label": "Portrix [Member]"
       }
      }
     },
     "localname": "PortrixMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_ProceedsFromIssuanceOfCommonStockNet": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from the additional capital contribution to the entity, net of expenses associated with the offering.",
        "label": "dsgx_ProceedsFromIssuanceOfCommonStockNet",
        "terseLabel": "Proceeds from Issuance of Common Stock, Net"
       }
      }
     },
     "localname": "ProceedsFromIssuanceOfCommonStockNet",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_QuestawebMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to QuestaWeb.",
        "label": "QuestaWeb [Member]"
       }
      }
     },
     "localname": "QuestawebMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_Range1Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents range 1.",
        "label": "Range 1 [Member]"
       }
      }
     },
     "localname": "Range1Member",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_Range2Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents range 2.",
        "label": "Range 2 [Member]"
       }
      }
     },
     "localname": "Range2Member",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_Range3Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents range 3.",
        "label": "Range 3 [Member]"
       }
      }
     },
     "localname": "Range3Member",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_Range4Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the fourth exercise price range.",
        "label": "Range 4 [Member]"
       }
      }
     },
     "localname": "Range4Member",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "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/20220131",
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, amortization of useful life.",
        "label": "Schedule of Amortization Finite-Lived Intangible Assets [Table Text Block]",
        "terseLabel": "Schedule of amortization of intangible assets"
       }
      }
     },
     "localname": "ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "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": "Schedule of cash settled restricted share unit plan activity"
       }
      }
     },
     "localname": "ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock",
     "nsuri": "http://www.descartes.com/20220131",
     "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/20220131",
     "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/20220131",
     "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/20220131",
     "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/20220131",
     "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/20220131",
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "dsgx_ShareCapitalTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure and information regarding share capital.",
        "label": "Share Capital [Text Block]",
        "terseLabel": "Share Capital"
       }
      }
     },
     "localname": "ShareCapitalTextBlock",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapital"
     ],
     "xbrltype": "textBlockItemType"
    },
    "dsgx_ShareholderapprovedStockOptionPlanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents Company's shareholder approved stock option plan.",
        "label": "Shareholder-Approved Stock Option Plan [Member]"
       }
      }
     },
     "localname": "ShareholderapprovedStockOptionPlanMember",
     "nsuri": "http://www.descartes.com/20220131",
     "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": "dsgx_ShelfProspectusMaximumAmount",
        "terseLabel": "Shelf Prospectus, Maximum Amount"
       }
      }
     },
     "localname": "ShelfProspectusMaximumAmount",
     "nsuri": "http://www.descartes.com/20220131",
     "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": "Shelf Prospectus [Member]"
       }
      }
     },
     "localname": "ShelfProspectusMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapital",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_ShelfProspectusPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The duration of the shelf prospectus.",
        "label": "dsgx_ShelfProspectusPeriod",
        "terseLabel": "Shelf Prospectus Period (Month)"
       }
      }
     },
     "localname": "ShelfProspectusPeriod",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "dsgx_ShipTrackMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to ShipTrack.",
        "label": "ShipTrack [Member]"
       }
      }
     },
     "localname": "ShipTrackMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_StatementSignificantAccountingPoliciesTablesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "No definition available.",
        "label": "Note 2 - Basis of Presentation"
       }
      }
     },
     "localname": "StatementSignificantAccountingPoliciesTablesAbstract",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_StepcomMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents STEPcom.",
        "label": "STEPcom [Member]"
       }
      }
     },
     "localname": "StepcomMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of shares issued from the exercise of stock options and share units.",
        "label": "Stock options and share units exercised (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShare",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_TaxYear2022Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents tax year 2022.",
        "label": "2023"
       }
      }
     },
     "localname": "TaxYear2022Member",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_TaxYear2023Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents tax year 2023.",
        "label": "2024"
       }
      }
     },
     "localname": "TaxYear2023Member",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_TaxYear2024Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents tax year 2024.",
        "label": "2025"
       }
      }
     },
     "localname": "TaxYear2024Member",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_TaxYear2025Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents tax year 2025.",
        "label": "2026"
       }
      }
     },
     "localname": "TaxYear2025Member",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_TaxYear2026Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to tax year 2026.",
        "label": "2027"
       }
      }
     },
     "localname": "TaxYear2026Member",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "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/20220131",
     "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/20220131",
     "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 [Member]"
       }
      }
     },
     "localname": "The2020BaseShelfProspectusMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapital",
      "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/20220131",
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_TheAccountingStandardsUpdate201616Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the Accounting Standards Update 2016-16.",
        "label": "The Accounting Standards Update 2016-16 [Member]"
       }
      }
     },
     "localname": "TheAccountingStandardsUpdate201616Member",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals"
     ],
     "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/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureGoodwillDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_VitaDexSolutionsLLCMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to VitaDex Solutions, LLC.",
        "label": "VitaDex Solutions, LLC"
       }
      }
     },
     "localname": "VitaDexSolutionsLLCMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSubsequentEvent",
      "http://www.descartes.com/role/DisclosureSubsequentEventDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to accounting changes.",
        "label": "Volunatry Change Elected to Adopt in Accounting for Deferred Revenue for Income Tax Purposes in the United States [Member]"
       }
      }
     },
     "localname": "VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember",
     "nsuri": "http://www.descartes.com/20220131",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_statement-statement--note-8-property-and-equipment-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 8 - Property and Equipment"
       }
      }
     },
     "localname": "statement-statement--note-8-property-and-equipment-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-10-goodwill-goodwill-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 10 - Goodwill - Goodwill (Details)"
       }
      }
     },
     "localname": "statement-statement-note-10-goodwill-goodwill-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-10-goodwill-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 10 - Goodwill"
       }
      }
     },
     "localname": "statement-statement-note-10-goodwill-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 11 - Accrued Liabilities - Accrued Liabilities (Details)"
       }
      }
     },
     "localname": "statement-statement-note-11-accrued-liabilities-accrued-liabilities-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-11-accrued-liabilities-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 11 - Accrued Liabilities"
       }
      }
     },
     "localname": "statement-statement-note-11-accrued-liabilities-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-13-leases-components-of-operating-lease-expense-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 13 - Leases - Components of Operating Lease Expense (Details)"
       }
      }
     },
     "localname": "statement-statement-note-13-leases-components-of-operating-lease-expense-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 13 - Leases - Maturities of Operating Lease Liabilities (Details)"
       }
      }
     },
     "localname": "statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-13-leases-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 13 - Leases"
       }
      }
     },
     "localname": "statement-statement-note-13-leases-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-15-share-capital-common-shares-outstanding-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 15 - Share Capital - Common Shares Outstanding (Details)"
       }
      }
     },
     "localname": "statement-statement-note-15-share-capital-common-shares-outstanding-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-15-share-capital-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 15 - Share Capital"
       }
      }
     },
     "localname": "statement-statement-note-15-share-capital-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 16 - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)"
       }
      }
     },
     "localname": "statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-16-earnings-per-share-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 16 - Earnings Per Share"
       }
      }
     },
     "localname": "statement-statement-note-16-earnings-per-share-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Stock-based Compensation Plans - Assumptions Used in Black-scholes Model for Each Grant (Details)"
       }
      }
     },
     "localname": "statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)"
       }
      }
     },
     "localname": "statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Stock-based Compensation Plans - Summary of CRSU Plan Activity (Details)"
       }
      }
     },
     "localname": "statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Stock-based Compensation Plans - Summary of Nonvested Share (Details)"
       }
      }
     },
     "localname": "statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Stock-based Compensation Plans - Summary of Option Activity (Details)"
       }
      }
     },
     "localname": "statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Stock-based Compensation Plans Summary of Performance Share Units Activity (Details)"
       }
      }
     },
     "localname": "statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Stock-based Compensation Plans - Summary of Restricted Share Units Activity (Details)"
       }
      }
     },
     "localname": "statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-17-stockbased-compensation-plans-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Stock-based Compensation Plans"
       }
      }
     },
     "localname": "statement-statement-note-17-stockbased-compensation-plans-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Stock-based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)"
       }
      }
     },
     "localname": "statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 18 - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)"
       }
      }
     },
     "localname": "statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 18 - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)"
       }
      }
     },
     "localname": "statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 18 - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)"
       }
      }
     },
     "localname": "statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 18 - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)"
       }
      }
     },
     "localname": "statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 18 - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)"
       }
      }
     },
     "localname": "statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 18 - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)"
       }
      }
     },
     "localname": "statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-18-income-taxes-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 18 - Income Taxes"
       }
      }
     },
     "localname": "statement-statement-note-18-income-taxes-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Components of Other Charges"
       }
      }
     },
     "localname": "statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-20-other-charges-restructuring-provision-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Provision"
       }
      }
     },
     "localname": "statement-statement-note-20-other-charges-restructuring-provision-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-20-other-charges-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Charges"
       }
      }
     },
     "localname": "statement-statement-note-20-other-charges-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flow Changes in Operating Asset and Liabilities"
       }
      }
     },
     "localname": "statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information"
       }
      }
     },
     "localname": "statement-statement-note-21-supplemental-cash-flow-information-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-lived Assets by Geographical Location"
       }
      }
     },
     "localname": "statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segmented Revenue by Geographical Location of Customer"
       }
      }
     },
     "localname": "statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segmented Revenue by Revenue Type"
       }
      }
     },
     "localname": "statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-22-segmented-information-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segmented Information"
       }
      }
     },
     "localname": "statement-statement-note-22-segmented-information-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 3 - Acquisitions - Acquired Intangible Assets Useful Lives (Details)"
       }
      }
     },
     "localname": "statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)"
       }
      }
     },
     "localname": "statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)"
       }
      }
     },
     "localname": "statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 3 - Acquisitions - Pro Forma Results of Operations (Details)"
       }
      }
     },
     "localname": "statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-3-acquisitions-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 3 - Acquisitions"
       }
      }
     },
     "localname": "statement-statement-note-3-acquisitions-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 4 - Fair Value Measurements - Derivative Instruments at Fair Value (Details)"
       }
      }
     },
     "localname": "statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-4-fair-value-measurements-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 4 - Fair Value Measurements"
       }
      }
     },
     "localname": "statement-statement-note-4-fair-value-measurements-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-6-other-receivables-other-receivables-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 6 - Other Receivables - Other Receivables (Details)"
       }
      }
     },
     "localname": "statement-statement-note-6-other-receivables-other-receivables-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-6-other-receivables-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 6 - Other Receivables"
       }
      }
     },
     "localname": "statement-statement-note-6-other-receivables-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-8-property-and-equipment-property-and-equipment-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 8 - Property and Equipment - Property and Equipment (Details)"
       }
      }
     },
     "localname": "statement-statement-note-8-property-and-equipment-property-and-equipment-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-9-intangible-assets-intangible-assets-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 9 - Intangible Assets - Intangible Assets (Details)"
       }
      }
     },
     "localname": "statement-statement-note-9-intangible-assets-intangible-assets-details",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-note-9-intangible-assets-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 9 - Intangible Assets"
       }
      }
     },
     "localname": "statement-statement-note-9-intangible-assets-tables",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "dsgx_statement-statement-significant-accounting-policies-policies": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Significant Accounting Policies"
       }
      }
     },
     "localname": "statement-statement-significant-accounting-policies-policies",
     "nsuri": "http://www.descartes.com/20220131",
     "xbrltype": "stringItemType"
    },
    "srt_AsiaPacificMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Region of Asia Pacific.",
        "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_CumulativeEffectPeriodOfAdoptionAdjustmentMember": {
     "auth_ref": [
      "r2",
      "r134",
      "r141",
      "r147",
      "r222",
      "r419",
      "r420",
      "r421",
      "r463",
      "r464",
      "r521",
      "r524",
      "r526",
      "r527",
      "r703"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Increase (decrease) to financial statements for cumulative-effect adjustment in period of adoption of amendment to accounting standards.",
        "label": "Cumulative Effect, Period of Adoption, Adjustment [Member]"
       }
      }
     },
     "localname": "CumulativeEffectPeriodOfAdoptionAdjustmentMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_CumulativeEffectPeriodOfAdoptionAxis": {
     "auth_ref": [
      "r2",
      "r134",
      "r141",
      "r147",
      "r222",
      "r419",
      "r420",
      "r421",
      "r463",
      "r464",
      "r521",
      "r524",
      "r526",
      "r527",
      "r703"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by cumulative-effect adjustment to financial statements in period of adoption of amendment to accounting standards.",
        "label": "Cumulative Effect, Period of Adoption [Axis]"
       }
      }
     },
     "localname": "CumulativeEffectPeriodOfAdoptionAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_CumulativeEffectPeriodOfAdoptionDomain": {
     "auth_ref": [
      "r2",
      "r134",
      "r141",
      "r147",
      "r222",
      "r419",
      "r420",
      "r421",
      "r463",
      "r464",
      "r521",
      "r524",
      "r526",
      "r527",
      "r703"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cumulative-effect adjustment to financial statements in period of adoption of amendment to accounting standards.",
        "label": "Cumulative Effect, Period of Adoption [Domain]"
       }
      }
     },
     "localname": "CumulativeEffectPeriodOfAdoptionDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MaximumMember": {
     "auth_ref": [
      "r293",
      "r324",
      "r372",
      "r375",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r646",
      "r649",
      "r677",
      "r678"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Upper limit of the provided range.",
        "label": "Maximum [Member]"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureLeasesDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MinimumMember": {
     "auth_ref": [
      "r293",
      "r324",
      "r372",
      "r375",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r646",
      "r649",
      "r677",
      "r678"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Lower limit of the provided range.",
        "label": "Minimum [Member]"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ProductOrServiceAxis": {
     "auth_ref": [
      "r203",
      "r353",
      "r357",
      "r606",
      "r645",
      "r647"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by product and service, or group of similar products and similar services.",
        "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": [
      "r203",
      "r353",
      "r357",
      "r606",
      "r645",
      "r647"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Product or service, or a group of similar products or similar services.",
        "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": [
      "r293",
      "r324",
      "r362",
      "r372",
      "r375",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r646",
      "r649",
      "r677",
      "r678"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median.",
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureLeasesDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RangeMember": {
     "auth_ref": [
      "r293",
      "r324",
      "r362",
      "r372",
      "r375",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r646",
      "r649",
      "r677",
      "r678"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median.",
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureLeasesDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ScenarioUnspecifiedDomain": {
     "auth_ref": [
      "r142",
      "r147",
      "r373"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts.",
        "label": "Scenario [Domain]"
       }
      }
     },
     "localname": "ScenarioUnspecifiedDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ScheduleOfCondensedCashFlowStatementTableTextBlock": {
     "auth_ref": [
      "r699"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of condensed cash flow statement, including, but not limited to, cash flow statements of consolidated entities and consolidation eliminations.",
        "label": "Condensed Cash Flow Statement [Table Text Block]",
        "terseLabel": "Schedule of changes in goodwill"
       }
      }
     },
     "localname": "ScheduleOfCondensedCashFlowStatementTableTextBlock",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "srt_SegmentGeographicalDomain": {
     "auth_ref": [
      "r204",
      "r205",
      "r353",
      "r358",
      "r648",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r673",
      "r674",
      "r675",
      "r676",
      "r689",
      "r691",
      "r692",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Geographical area.",
        "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": [
      "r204",
      "r205",
      "r353",
      "r358",
      "r648",
      "r663",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r673",
      "r674",
      "r675",
      "r676",
      "r689",
      "r690"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by geographical components.",
        "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"
    },
    "srt_StatementScenarioAxis": {
     "auth_ref": [
      "r142",
      "r147",
      "r276",
      "r373",
      "r592"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts.",
        "label": "Scenario [Axis]"
       }
      }
     },
     "localname": "StatementScenarioAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_TitleOfIndividualAxis": {
     "auth_ref": [
      "r209",
      "r586"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by title of individual or nature of relationship to individual or group of individuals.",
        "label": "Title of Individual [Axis]"
       }
      }
     },
     "localname": "TitleOfIndividualAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_TitleOfIndividualWithRelationshipToEntityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of individual, or nature of relationship to individual or group of individuals.",
        "label": "Title of Individual [Domain]"
       }
      }
     },
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingStandardsUpdate201409Member": {
     "auth_ref": [
      "r359"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accounting Standards Update 2014-09 Revenue from Contracts with Customers (Topic 606).",
        "label": "Accounting Standards Update 2014-09 [Member]"
       }
      }
     },
     "localname": "AccountingStandardsUpdate201409Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountingStandardsUpdate201602Member": {
     "auth_ref": [
      "r568"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accounting Standards Update 2016-02 Leases (Topic 842).",
        "label": "Accounting Standards Update 2016-02 [Member]"
       }
      }
     },
     "localname": "AccountingStandardsUpdate201602Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "auth_ref": [
      "r47"
     ],
     "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": [
      "r46",
      "r589"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 4.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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": {
     "auth_ref": [
      "r228"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable.",
        "label": "Accounts Receivable, Allowance for Credit Loss"
       }
      }
     },
     "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": [
      "r210",
      "r211"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails": {
       "order": 1.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)"
       }
      }
     },
     "localname": "AccountsReceivableNetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "auth_ref": [
      "r9",
      "r28",
      "r210",
      "r211"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedIncomeTaxesCurrent": {
     "auth_ref": [
      "r20",
      "r616",
      "r633"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 3.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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedIncomeTaxesNoncurrent": {
     "auth_ref": [
      "r22",
      "r616",
      "r633"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 4.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": "us-gaap_AccruedIncomeTaxesNoncurrent",
        "terseLabel": "INCOME TAXES PAYABLE"
       }
      }
     },
     "localname": "AccruedIncomeTaxesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r50"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 5.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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedProfessionalFeesCurrent": {
     "auth_ref": [
      "r12",
      "r13",
      "r50"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "order": 1.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"
       }
      }
     },
     "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": [
      "r43",
      "r260"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails": {
       "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"
       }
      }
     },
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "auth_ref": [
      "r31",
      "r66",
      "r68",
      "r69",
      "r634",
      "r657",
      "r661"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "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 loss"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "auth_ref": [
      "r65",
      "r69",
      "r77",
      "r78",
      "r79",
      "r131",
      "r132",
      "r133",
      "r512",
      "r652",
      "r653",
      "r705"
     ],
     "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": "AOCI Attributable to Parent [Member]"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "auth_ref": [
      "r29"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [
      "r131",
      "r132",
      "r133",
      "r419",
      "r420",
      "r421",
      "r526"
     ],
     "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 [Member]"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis": {
     "auth_ref": [
      "r135",
      "r136",
      "r137",
      "r138"
     ],
     "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_AdjustmentsForNewAccountingPronouncementsAxis": {
     "auth_ref": [
      "r0",
      "r1",
      "r2",
      "r3",
      "r4",
      "r135",
      "r136",
      "r137",
      "r138",
      "r147",
      "r216",
      "r217",
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r278",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r461",
      "r462",
      "r463",
      "r464",
      "r518",
      "r519",
      "r520",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r585",
      "r608",
      "r609",
      "r610",
      "r650",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r661",
      "r701",
      "r702",
      "r703",
      "r704",
      "r705"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by amendment to accounting standards.",
        "label": "Accounting Standards Update [Axis]"
       }
      }
     },
     "localname": "AdjustmentsForNewAccountingPronouncementsAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "auth_ref": [
      "r376",
      "r378",
      "r425",
      "r426"
     ],
     "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/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "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/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "auth_ref": [
      "r378",
      "r411",
      "r424"
     ],
     "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": [
      "r35",
      "r212",
      "r225"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails": {
       "order": 2.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": "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent",
        "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": [
      "r227"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.",
        "label": "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs",
        "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": [
      "r111",
      "r245",
      "r252"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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/StatementConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r160"
     ],
     "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": [
      "r160"
     ],
     "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/DisclosureEarningsPerShare",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "auth_ref": [
      "r160"
     ],
     "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/DisclosureEarningsPerShare",
      "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 [Member]"
       }
      }
     },
     "localname": "AssetUnderConstructionMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r125",
      "r187",
      "r192",
      "r199",
      "r218",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r508",
      "r513",
      "r540",
      "r587",
      "r589",
      "r614",
      "r632"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "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": "us-gaap_Assets",
        "totalLabel": "Assets, Total"
       }
      }
     },
     "localname": "Assets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r10",
      "r11",
      "r60",
      "r125",
      "r218",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r508",
      "r513",
      "r540",
      "r587",
      "r589"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 5.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": "us-gaap_AssetsCurrent",
        "totalLabel": "Assets, Current, Total"
       }
      }
     },
     "localname": "AssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CURRENT ASSETS"
       }
      }
     },
     "localname": "AssetsCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r379",
      "r413"
     ],
     "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/DisclosureBasisOfPresentationDetails",
      "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": [
      "r371",
      "r374"
     ],
     "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/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails",
      "http://www.descartes.com/role/DisclosureSubsequentEvent",
      "http://www.descartes.com/role/DisclosureSubsequentEventDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "auth_ref": [
      "r371",
      "r374",
      "r483",
      "r484"
     ],
     "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/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails",
      "http://www.descartes.com/role/DisclosureSubsequentEvent",
      "http://www.descartes.com/role/DisclosureSubsequentEventDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued": {
     "auth_ref": [
      "r501"
     ],
     "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",
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic": {
     "auth_ref": [
      "r481",
      "r482"
     ],
     "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": "us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic",
        "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": [
      "r481",
      "r482"
     ],
     "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": "us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted",
        "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": [
      "r481",
      "r482"
     ],
     "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, 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": [
      "r481",
      "r482"
     ],
     "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": "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss",
        "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": [
      "r481",
      "r482"
     ],
     "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": "us-gaap_BusinessAcquisitionsProFormaRevenue",
        "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": [
      "r488"
     ],
     "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": "Business Combination, Acquired Receivables, Estimated Uncollectible"
       }
      }
     },
     "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": [
      "r486"
     ],
     "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": "us-gaap_BusinessCombinationAcquiredReceivablesFairValue",
        "terseLabel": "Business Combination, Acquired Receivable, Fair Value"
       }
      }
     },
     "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": [
      "r487"
     ],
     "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",
        "terseLabel": "Business Combination, Acquired Receivables, Gross Contractual Amount"
       }
      }
     },
     "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": [
      "r479"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_OtherNonoperatingExpense",
       "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": "Acquisition-related costs",
        "terseLabel": "Business Combination, 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_BusinessCombinationConsiderationTransferred1": {
     "auth_ref": [
      "r496",
      "r497",
      "r499"
     ],
     "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": "Purchase price consideration",
        "terseLabel": "Business Combination, Consideration Transferred, Total"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferred1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable": {
     "auth_ref": [
      "r496",
      "r497"
     ],
     "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": [
      "r494",
      "r496",
      "r497",
      "r500"
     ],
     "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"
       }
      }
     },
     "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": [
      "r110",
      "r504"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherNonoperatingExpense",
       "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": "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": [
      "r503"
     ],
     "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"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh",
     "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/DisclosureSubsequentEventDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiability": {
     "auth_ref": [
      "r495",
      "r498",
      "r502"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination.",
        "label": "us-gaap_BusinessCombinationContingentConsiderationLiability",
        "terseLabel": "Business Combination, Contingent Consideration, Liability, Total",
        "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": [
      "r531"
     ],
     "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": [
      "r505"
     ],
     "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": [
      "r480"
     ],
     "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",
        "terseLabel": "Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual"
       }
      }
     },
     "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": [
      "r480"
     ],
     "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",
        "terseLabel": "Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual"
       }
      }
     },
     "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": [
      "r489"
     ],
     "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": "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": [
      "r489"
     ],
     "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": [
      "r489"
     ],
     "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": [
      "r489"
     ],
     "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": [
      "r489"
     ],
     "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": [
      "r485",
      "r489"
     ],
     "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": [
      "r485",
      "r489"
     ],
     "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"
       }
      }
     },
     "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": [
      "r489"
     ],
     "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": [
      "r485",
      "r489"
     ],
     "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_BusinessCombinationsPolicy": {
     "auth_ref": [
      "r477"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.",
        "label": "Business Combinations Policy [Policy Text Block]",
        "terseLabel": "Business combinations"
       }
      }
     },
     "localname": "BusinessCombinationsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock": {
     "auth_ref": [
      "r6",
      "r130",
      "r178"
     ],
     "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_CanadaRevenueAgencyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of the government of Canada.",
        "label": "Canada Revenue"
       }
      }
     },
     "localname": "CanadaRevenueAgencyMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CapitalizedContractCostAmortization": {
     "auth_ref": [
      "r233"
     ],
     "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": "us-gaap_CapitalizedContractCostAmortization",
        "terseLabel": "Capitalized contract cost, amortization"
       }
      }
     },
     "localname": "CapitalizedContractCostAmortization",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedContractCostNet": {
     "auth_ref": [
      "r232"
     ],
     "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": "us-gaap_CapitalizedContractCostNet",
        "terseLabel": "Capitalized contract cost, net, Total"
       }
      }
     },
     "localname": "CapitalizedContractCostNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAcquiredFromAcquisition": {
     "auth_ref": [
      "r97"
     ],
     "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"
       }
      }
     },
     "localname": "CashAcquiredFromAcquisition",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r7",
      "r40",
      "r113"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 3.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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r16",
      "r114"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "terseLabel": "Cash"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": {
     "auth_ref": [
      "r107",
      "r113",
      "r116"
     ],
     "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 year",
        "periodStartLabel": "Cash, beginning of year"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "auth_ref": [
      "r107",
      "r554"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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": "Increase in cash"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashFlowSupplementalDisclosuresTextBlock": {
     "auth_ref": [
      "r117"
     ],
     "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": [
      "r135",
      "r136",
      "r137",
      "r138"
     ],
     "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": [
      "r123",
      "r125",
      "r150",
      "r154",
      "r155",
      "r157",
      "r159",
      "r168",
      "r169",
      "r170",
      "r218",
      "r279",
      "r283",
      "r284",
      "r285",
      "r288",
      "r289",
      "r322",
      "r323",
      "r325",
      "r326",
      "r540",
      "r687"
     ],
     "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_CommitmentsAndContingencies": {
     "auth_ref": [
      "r54",
      "r275",
      "r620",
      "r638"
     ],
     "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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "auth_ref": [
      "r272",
      "r273",
      "r274",
      "r277",
      "r664"
     ],
     "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_CommonStockMember": {
     "auth_ref": [
      "r131",
      "r132",
      "r526"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock that is subordinate to all other stock of the issuer.",
        "label": "Common Stock [Member]"
       }
      }
     },
     "localname": "CommonStockMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r27"
     ],
     "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/StatementConsolidatedBalanceSheetsParentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "auth_ref": [
      "r27",
      "r327"
     ],
     "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)",
        "periodEndLabel": "Balance, end of year (in shares)",
        "periodStartLabel": "Balance, beginning of year (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValue": {
     "auth_ref": [
      "r27",
      "r589"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "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,756,210 at January 31, 2022 (January 31, 2021 - 84,494,658)"
       }
      }
     },
     "localname": "CommonStockValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "auth_ref": [
      "r72",
      "r74",
      "r75",
      "r85",
      "r624",
      "r641"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": {
       "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": "us-gaap_ComprehensiveIncomeNetOfTax",
        "totalLabel": "COMPREHENSIVE INCOME"
       }
      }
     },
     "localname": "ComprehensiveIncomeNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome"
     ],
     "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 [Member]"
       }
      }
     },
     "localname": "ComputerEquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "auth_ref": [
      "r119",
      "r510"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting.  The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.",
        "label": "Consolidation, Policy [Policy Text Block]",
        "terseLabel": "Basis of consolidation"
       }
      }
     },
     "localname": "ConsolidationPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "auth_ref": [
      "r334"
     ],
     "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"
       }
      }
     },
     "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": [
      "r329",
      "r331",
      "r354"
     ],
     "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": "us-gaap_ContractWithCustomerAssetNet",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Balance",
        "terseLabel": "Contract with Customer, Asset, after Allowance for Credit Loss, Total"
       }
      }
     },
     "localname": "ContractWithCustomerAssetNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerAssetReclassifiedToReceivable": {
     "auth_ref": [
      "r333"
     ],
     "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": "us-gaap_ContractWithCustomerAssetReclassifiedToReceivable",
        "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": [
      "r329",
      "r330",
      "r354"
     ],
     "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": "us-gaap_ContractWithCustomerLiability",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Balance"
       }
      }
     },
     "localname": "ContractWithCustomerLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "auth_ref": [
      "r329",
      "r330",
      "r354"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "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 current.",
        "label": "Deferred revenue (Note 19)",
        "terseLabel": "Current"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination": {
     "auth_ref": [
      "r332"
     ],
     "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"
       }
      }
     },
     "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": [
      "r329",
      "r330",
      "r354"
     ],
     "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"
       }
      }
     },
     "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": [
      "r355"
     ],
     "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"
       }
      }
     },
     "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": [
      "r91",
      "r606"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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/StatementConsolidatedStatementsOfOperations"
     ],
     "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/StatementConsolidatedStatementsOfOperations"
     ],
     "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": [
      "r126",
      "r457",
      "r467"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "us-gaap_CurrentFederalTaxExpenseBenefit",
        "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": [
      "r126",
      "r457",
      "r467",
      "r469"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerRelationshipsMember": {
     "auth_ref": [
      "r492"
     ],
     "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/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "auth_ref": [
      "r122",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r307",
      "r314",
      "r315",
      "r316",
      "r321"
     ],
     "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": [
      "r19",
      "r20",
      "r21",
      "r124",
      "r129",
      "r290",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r297",
      "r303",
      "r304",
      "r305",
      "r306",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r317",
      "r318",
      "r319",
      "r320",
      "r567",
      "r615",
      "r618",
      "r631"
     ],
     "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_DebtInstrumentNameDomain": {
     "auth_ref": [
      "r52",
      "r124",
      "r129",
      "r290",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r297",
      "r303",
      "r304",
      "r305",
      "r306",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r317",
      "r318",
      "r319",
      "r320",
      "r567"
     ],
     "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_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": "us-gaap_DebtInstrumentTerm",
        "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": [
      "r126",
      "r458",
      "r467"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "us-gaap_DeferredFederalIncomeTaxExpenseBenefit",
        "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": [
      "r434",
      "r435"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 1.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": "us-gaap_DeferredIncomeTaxAssetsNet",
        "verboseLabel": "DEFERRED INCOME TAXES"
       }
      }
     },
     "localname": "DeferredIncomeTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r111",
      "r126",
      "r458",
      "r467",
      "r468",
      "r469"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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 expense"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilities": {
     "auth_ref": [
      "r23",
      "r24",
      "r447",
      "r617",
      "r630"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "dsgx_DeferredTaxAssetsNetBeforeValuationAllowance",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences.",
        "label": "us-gaap_DeferredIncomeTaxLiabilities",
        "negatedTotalLabel": "Total deferred income tax liabilities"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "auth_ref": [
      "r434",
      "r435"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 2.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",
        "terseLabel": "Deferred Income Tax Liabilities, Net, Total"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredRevenueNoncurrent": {
     "auth_ref": [
      "r37"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 3.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": "us-gaap_DeferredRevenueNoncurrent",
        "terseLabel": "DEFERRED REVENUE (Note 19)"
       }
      }
     },
     "localname": "DeferredRevenueNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "auth_ref": [
      "r448"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "dsgx_DeferredTaxAssetsNetBeforeValuationAllowance",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.",
        "label": "us-gaap_DeferredTaxAssetsGross",
        "totalLabel": "Total deferred income tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": {
     "auth_ref": [
      "r455",
      "r456"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.",
        "label": "Accumulated net operating losses"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment.",
        "label": "Difference between tax and accounting basis of property and equipment"
       }
      }
     },
     "localname": "DeferredTaxAssetsPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch": {
     "auth_ref": [
      "r453",
      "r455",
      "r456"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards.",
        "label": "Research and development and other tax credits and expenses"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxCreditCarryforwardsResearch",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "auth_ref": [
      "r455",
      "r456"
     ],
     "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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities": {
     "auth_ref": [
      "r455",
      "r456"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from accrued liabilities.",
        "label": "Accrued liabilities not currently deductible"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r449"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "dsgx_DeferredTaxAssetsLiabilitesNet1",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.",
        "label": "us-gaap_DeferredTaxAssetsValuationAllowance",
        "negatedLabel": "Valuation allowance"
       }
      }
     },
     "localname": "DeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets": {
     "auth_ref": [
      "r455",
      "r456"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill.",
        "label": "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets",
        "negatedLabel": "Difference between tax and accounting basis of intangible assets"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesOther": {
     "auth_ref": [
      "r455",
      "r456"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other.",
        "label": "us-gaap_DeferredTaxLiabilitiesOther",
        "negatedLabel": "Other temporary differences"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesOther",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "auth_ref": [
      "r455",
      "r456"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.",
        "label": "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment",
        "negatedLabel": "Difference between tax and accounting basis of property and equipment"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Depreciation": {
     "auth_ref": [
      "r111",
      "r258"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeAssets": {
     "auth_ref": [
      "r61",
      "r62",
      "r63",
      "r539"
     ],
     "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"
       }
      }
     },
     "localname": "DerivativeAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeGainOnDerivative": {
     "auth_ref": [
      "r516"
     ],
     "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 Derivative",
        "terseLabel": "Derivative, Gain on Derivatives"
       }
      }
     },
     "localname": "DerivativeGainOnDerivative",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DesignatedAsHedgingInstrumentMember": {
     "auth_ref": [
      "r515"
     ],
     "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": [
      "r493"
     ],
     "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": [
      "r427"
     ],
     "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_DisclosureTextBlockAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_DisclosureTextBlockAbstract",
        "terseLabel": "Notes to Financial Statements"
       }
      }
     },
     "localname": "DisclosureTextBlockAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilities",
      "http://www.descartes.com/role/DisclosureAcquisitions",
      "http://www.descartes.com/role/DisclosureBasisOfPresentation",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts",
      "http://www.descartes.com/role/DisclosureDescriptionOfBusiness",
      "http://www.descartes.com/role/DisclosureEarningsPerShare",
      "http://www.descartes.com/role/DisclosureFairValueMeasurements",
      "http://www.descartes.com/role/DisclosureGoodwill",
      "http://www.descartes.com/role/DisclosureIncomeTaxes",
      "http://www.descartes.com/role/DisclosureIntangibleAssets",
      "http://www.descartes.com/role/DisclosureInventory",
      "http://www.descartes.com/role/DisclosureLeases",
      "http://www.descartes.com/role/DisclosureLongTermDebt",
      "http://www.descartes.com/role/DisclosureOtherCharges",
      "http://www.descartes.com/role/DisclosureOtherReceivables",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipment",
      "http://www.descartes.com/role/DisclosureSegmentedInformation",
      "http://www.descartes.com/role/DisclosureShareCapital",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlans",
      "http://www.descartes.com/role/DisclosureSubsequentEvent",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DomesticCountryMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile.",
        "label": "Domestic Tax Authority [Member]"
       }
      }
     },
     "localname": "DomesticCountryMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EMEAMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Regions of Europe, Middle East and Africa.",
        "label": "EMEA"
       }
      }
     },
     "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 (Note 16)"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r86",
      "r139",
      "r140",
      "r141",
      "r142",
      "r143",
      "r148",
      "r150",
      "r157",
      "r158",
      "r159",
      "r163",
      "r164",
      "r527",
      "r528",
      "r625",
      "r642"
     ],
     "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": "Basic (in dollars per share)"
       }
      }
     },
     "localname": "EarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r86",
      "r139",
      "r140",
      "r141",
      "r142",
      "r143",
      "r150",
      "r157",
      "r158",
      "r159",
      "r163",
      "r164",
      "r527",
      "r528",
      "r625",
      "r642"
     ],
     "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": "Diluted (in dollars per share)"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "auth_ref": [
      "r160",
      "r161"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.",
        "label": "Earnings Per Share, Policy [Policy Text Block]",
        "terseLabel": "Earnings per share"
       }
      }
     },
     "localname": "EarningsPerSharePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "auth_ref": [
      "r160",
      "r161",
      "r162",
      "r165"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for earnings per share.",
        "label": "Earnings Per Share [Text Block]",
        "terseLabel": "Earnings Per Share"
       }
      }
     },
     "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": [
      "r554"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "auth_ref": [
      "r437"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
        "terseLabel": "Effective Income Tax Rate Reconciliation, Percent, Total"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r127",
      "r437",
      "r470"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).",
        "label": "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
        "terseLabel": "Combined basic Canadian statutory rates"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "auth_ref": [
      "r50"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "order": 3.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": "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": [
      "r412"
     ],
     "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": [
      "r412"
     ],
     "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": [
      "r414"
     ],
     "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_EmployeeSeveranceMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Termination of an employee associated with exit from or disposal of business activities or restructurings pursuant to a plan.",
        "label": "Employee Severance [Member]"
       }
      }
     },
     "localname": "EmployeeSeveranceMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EmployeeStockOptionMember": {
     "auth_ref": [
      "r409"
     ],
     "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/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShare",
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tangible personal property used to produce goods and services.",
        "label": "Equipment [Member]"
       }
      }
     },
     "localname": "EquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r2",
      "r77",
      "r78",
      "r79",
      "r131",
      "r132",
      "r133",
      "r136",
      "r144",
      "r146",
      "r167",
      "r222",
      "r327",
      "r328",
      "r419",
      "r420",
      "r421",
      "r463",
      "r464",
      "r526",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r562",
      "r652",
      "r653",
      "r654",
      "r705"
     ],
     "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/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FacilityClosingMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Closing of a facility associated with exit from or disposal of business activities or restructurings pursuant to a plan.",
        "label": "Facility Closing [Member]"
       }
      }
     },
     "localname": "FacilityClosingMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Assets and Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Abstract]"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "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": [
      "r532",
      "r536"
     ],
     "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": [
      "r305",
      "r317",
      "r318",
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r529",
      "r594",
      "r595",
      "r596"
     ],
     "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_FairValueDisclosuresTextBlock": {
     "auth_ref": [
      "r535"
     ],
     "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": [
      "r305",
      "r363",
      "r364",
      "r369",
      "r370",
      "r529",
      "r594"
     ],
     "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": [
      "r305",
      "r317",
      "r318",
      "r363",
      "r364",
      "r369",
      "r370",
      "r529",
      "r595"
     ],
     "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": [
      "r305",
      "r317",
      "r318",
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r529",
      "r596"
     ],
     "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": [
      "r532",
      "r536"
     ],
     "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": [
      "r533"
     ],
     "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": [
      "r534"
     ],
     "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": [
      "r534"
     ],
     "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": [
      "r532"
     ],
     "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": [
      "r305",
      "r317",
      "r318",
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r594",
      "r595",
      "r596"
     ],
     "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_FairValueOfFinancialInstrumentsPolicy": {
     "auth_ref": [
      "r537",
      "r538"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments.",
        "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]",
        "terseLabel": "Financial instruments"
       }
      }
     },
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "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": "Acquired intangible assets estimated useful lives (Year)",
        "terseLabel": "Finite-Lived Intangible Asset, Useful Life (Year)"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r251"
     ],
     "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"
       }
      }
     },
     "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": [
      "r253"
     ],
     "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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "auth_ref": [
      "r253"
     ],
     "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": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
        "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": [
      "r253"
     ],
     "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": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
        "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": [
      "r253"
     ],
     "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": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
        "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": [
      "r253"
     ],
     "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": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
        "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": [
      "r246",
      "r247",
      "r251",
      "r254",
      "r607",
      "r611"
     ],
     "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/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r251",
      "r611"
     ],
     "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"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "auth_ref": [
      "r246",
      "r250"
     ],
     "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/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "auth_ref": [
      "r251",
      "r607"
     ],
     "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": "us-gaap_FiniteLivedIntangibleAssetsNet",
        "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_ForeignCountryMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax departments of governments entitled to levy and collect income taxes from the entity outside the entity's country of domicile.",
        "label": "Foreign Tax Authority [Member]"
       }
      }
     },
     "localname": "ForeignCountryMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": {
     "auth_ref": [
      "r549",
      "r550",
      "r551",
      "r553"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.",
        "label": "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax",
        "terseLabel": "Foreign Currency Transaction Gain (Loss), before Tax, Total"
       }
      }
     },
     "localname": "ForeignCurrencyTransactionGainLossBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "auth_ref": [
      "r564"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.",
        "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]",
        "terseLabel": "Foreign currency translation"
       }
      }
     },
     "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "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 [Member]"
       }
      }
     },
     "localname": "FurnitureAndFixturesMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r93"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GeneralAndAdministrativeExpenseMember": {
     "auth_ref": [
      "r87"
     ],
     "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": [
      "r234",
      "r236",
      "r589",
      "r613"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 7.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",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "Goodwill",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAcquiredDuringPeriod": {
     "auth_ref": [
      "r237"
     ],
     "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": "us-gaap_GoodwillAcquiredDuringPeriod",
        "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_GoodwillAndIntangibleAssetsPolicyTextBlock": {
     "auth_ref": [
      "r241",
      "r248"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets.",
        "label": "Goodwill and Intangible Assets, Policy [Policy Text Block]",
        "terseLabel": "Goodwill and intangible assets"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillDisclosureTextBlock": {
     "auth_ref": [
      "r243"
     ],
     "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_GoodwillImpairmentLoss": {
     "auth_ref": [
      "r111",
      "r235",
      "r238",
      "r242"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "us-gaap_GoodwillImpairmentLoss",
        "terseLabel": "Goodwill, Impairment Loss"
       }
      }
     },
     "localname": "GoodwillImpairmentLoss",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments": {
     "auth_ref": [
      "r239",
      "r240",
      "r478"
     ],
     "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": "us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments",
        "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": [
      "r90",
      "r125",
      "r187",
      "r191",
      "r195",
      "r198",
      "r201",
      "r218",
      "r279",
      "r280",
      "r281",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r540"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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": "us-gaap_GrossProfit",
        "totalLabel": "GROSS MARGIN"
       }
      }
     },
     "localname": "GrossProfit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_HedgingDesignationAxis": {
     "auth_ref": [
      "r515",
      "r517"
     ],
     "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": [
      "r515"
     ],
     "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_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for the impairment and disposal of long-lived assets including goodwill and other intangible assets.",
        "label": "Impairment or Disposal of Long-Lived Assets, Including Intangible Assets, Policy [Policy Text Block]",
        "terseLabel": "Impairment of long-lived assets"
       }
      }
     },
     "localname": "ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "auth_ref": [
      "r82",
      "r187",
      "r191",
      "r195",
      "r198",
      "r201",
      "r612",
      "r621",
      "r627",
      "r643"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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",
        "terseLabel": "Income before income taxes",
        "totalLabel": "INCOME BEFORE INCOME TAXES"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeStatementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "localname": "IncomeStatementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "auth_ref": [
      "r262",
      "r267"
     ],
     "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": [
      "r267"
     ],
     "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_IncomeTaxAuthorityAxis": {
     "auth_ref": [
      "r440"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by tax jurisdiction.",
        "label": "Income Tax Authority [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes.",
        "label": "Income Tax Authority [Domain]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxAuthorityNameAxis": {
     "auth_ref": [
      "r440"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by name of taxing authority.",
        "label": "Income Tax Authority, Name [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityNameAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxAuthorityNameDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Named agency, division or body that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes.",
        "label": "Income Tax Authority, Name [Domain]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r127",
      "r438",
      "r445",
      "r452",
      "r465",
      "r471",
      "r473",
      "r474",
      "r476"
     ],
     "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 Tax Disclosure [Text Block]",
        "terseLabel": "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": [
      "r128",
      "r145",
      "r146",
      "r186",
      "r436",
      "r466",
      "r472",
      "r644"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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": "us-gaap_IncomeTaxExpenseBenefit",
        "terseLabel": "Income tax expense",
        "totalLabel": "Income Tax Expense (Benefit), Total"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "INCOME TAX EXPENSE (Note 18)"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "auth_ref": [
      "r76",
      "r432",
      "r433",
      "r445",
      "r446",
      "r451",
      "r459"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.",
        "label": "Income Tax, Policy [Policy Text Block]",
        "terseLabel": "Income taxes"
       }
      }
     },
     "localname": "IncomeTaxPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r437"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.",
        "label": "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
        "terseLabel": "Valuation allowance"
       }
      }
     },
     "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate": {
     "auth_ref": [
      "r431",
      "r437"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in the income tax rates.",
        "label": "us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate",
        "terseLabel": "Effect of rate changes on current year timing differences"
       }
      }
     },
     "localname": "IncomeTaxReconciliationChangeInEnactedTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential": {
     "auth_ref": [
      "r437"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit).",
        "label": "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential",
        "terseLabel": "Effect of differences between Canadian and foreign tax rates"
       }
      }
     },
     "localname": "IncomeTaxReconciliationForeignIncomeTaxRateDifferential",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r437"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.",
        "label": "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
        "terseLabel": "Income tax expense based on the above rates"
       }
      }
     },
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization": {
     "auth_ref": [
      "r437"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible amortization.",
        "label": "us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization",
        "terseLabel": "Permanent differences including amortization of intangible assets"
       }
      }
     },
     "localname": "IncomeTaxReconciliationNondeductibleExpenseAmortization",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost": {
     "auth_ref": [
      "r437"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.",
        "label": "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost",
        "terseLabel": "Stock based compensation"
       }
      }
     },
     "localname": "IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationOtherAdjustments": {
     "auth_ref": [
      "r437"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.",
        "label": "us-gaap_IncomeTaxReconciliationOtherAdjustments",
        "terseLabel": "Other, including foreign exchange"
       }
      }
     },
     "localname": "IncomeTaxReconciliationOtherAdjustments",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes": {
     "auth_ref": [
      "r437"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to revisions of previously reported income tax expense (benefit).",
        "label": "us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes",
        "terseLabel": "Adjustments relating to previous periods"
       }
      }
     },
     "localname": "IncomeTaxReconciliationPriorYearIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "auth_ref": [
      "r115"
     ],
     "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 year for income taxes"
       }
      }
     },
     "localname": "IncomeTaxesPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "auth_ref": [
      "r110"
     ],
     "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 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": "us-gaap_IncreaseDecreaseInAccountsPayable",
        "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": [
      "r110"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 5.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": "us-gaap_IncreaseDecreaseInAccountsReceivable",
        "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": [
      "r110"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 9.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": [
      "r110"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 2.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"
       }
      }
     },
     "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": [
      "r110"
     ],
     "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": "us-gaap_IncreaseDecreaseInIncomeTaxes",
        "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": [
      "r110"
     ],
     "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 the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.",
        "label": "us-gaap_IncreaseDecreaseInInventories",
        "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": [
      "r110"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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": "us-gaap_IncreaseDecreaseInOperatingCapital",
        "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/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherReceivables": {
     "auth_ref": [
      "r110"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 6.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": "us-gaap_IncreaseDecreaseInOtherReceivables",
        "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": [
      "r110"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 4.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": "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
        "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": [
      "r151",
      "r152",
      "r153",
      "r159"
     ],
     "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": [
      "r257"
     ],
     "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": [
      "r244",
      "r249"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 2.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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestExpense": {
     "auth_ref": [
      "r81",
      "r185",
      "r565",
      "r566",
      "r626"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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": "us-gaap_InterestExpense",
        "negatedLabel": "INTEREST EXPENSE"
       }
      }
     },
     "localname": "InterestExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestPaidNet": {
     "auth_ref": [
      "r105",
      "r108",
      "r115"
     ],
     "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 year for interest"
       }
      }
     },
     "localname": "InterestPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InternalRevenueServiceIRSMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of the United States of America government entitled to levy and collect income taxes from the entity.",
        "label": "United States"
       }
      }
     },
     "localname": "InternalRevenueServiceIRSMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "auth_ref": [
      "r231"
     ],
     "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": [
      "r8",
      "r57",
      "r589"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 5.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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "auth_ref": [
      "r15",
      "r58",
      "r120",
      "r166",
      "r229",
      "r230",
      "r231",
      "r604"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.",
        "label": "Inventory, Policy [Policy Text Block]",
        "terseLabel": "Inventory"
       }
      }
     },
     "localname": "InventoryPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InvestmentIncomeNet": {
     "auth_ref": [
      "r94",
      "r95"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseCost": {
     "auth_ref": [
      "r581",
      "r583"
     ],
     "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": "us-gaap_LeaseCost",
        "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": [
      "r581"
     ],
     "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 lease cost"
       }
      }
     },
     "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": [
      "r259"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additions or improvements to assets held under a lease arrangement.",
        "label": "Leasehold Improvements [Member]"
       }
      }
     },
     "localname": "LeaseholdImprovementsMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "auth_ref": [
      "r572"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee.",
        "label": "Lessee, Leases [Policy Text Block]",
        "terseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeLeasesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "auth_ref": [
      "r582"
     ],
     "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": [
      "r582"
     ],
     "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": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
        "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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "auth_ref": [
      "r582"
     ],
     "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 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 (rolling approach).",
        "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
        "verboseLabel": "2028 and thereafter"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r582"
     ],
     "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 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",
        "verboseLabel": "2023"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r582"
     ],
     "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 lessee's undiscounted obligation for lease payment for operating lease to be paid 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": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
        "verboseLabel": "2027"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r582"
     ],
     "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 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": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
        "verboseLabel": "2026"
       }
      }
     },
     "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": [
      "r582"
     ],
     "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 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": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
        "verboseLabel": "2025"
       }
      }
     },
     "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": [
      "r582"
     ],
     "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 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": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
        "verboseLabel": "2024"
       }
      }
     },
     "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": [
      "r582"
     ],
     "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": "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
        "negatedLabel": "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": [
      "r573"
     ],
     "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": "us-gaap_LesseeOperatingLeaseRemainingLeaseTerm",
        "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": [
      "r574"
     ],
     "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": "us-gaap_LesseeOperatingLeaseRenewalTerm",
        "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": [
      "r584"
     ],
     "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": "us-gaap_LettersOfCreditOutstandingAmount",
        "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": [
      "r49",
      "r125",
      "r193",
      "r218",
      "r279",
      "r280",
      "r281",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r509",
      "r513",
      "r514",
      "r540",
      "r587",
      "r588"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "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": "us-gaap_Liabilities",
        "totalLabel": "Liabilities, Total"
       }
      }
     },
     "localname": "Liabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r34",
      "r125",
      "r218",
      "r540",
      "r589",
      "r619",
      "r636"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "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": "us-gaap_LiabilitiesAndStockholdersEquity",
        "totalLabel": "Liabilities and Equity, Total"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r51",
      "r125",
      "r218",
      "r279",
      "r280",
      "r281",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r509",
      "r513",
      "r514",
      "r540",
      "r587",
      "r588",
      "r589"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "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": "us-gaap_LiabilitiesCurrent",
        "totalLabel": "Liabilities, Current, Total"
       }
      }
     },
     "localname": "LiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CURRENT LIABILITIES"
       }
      }
     },
     "localname": "LiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent": {
     "auth_ref": [
      "r53"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recognized for uncertainty in income taxes classified as noncurrent.",
        "label": "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent",
        "periodEndLabel": "Liability, end of year",
        "periodStartLabel": "Liability, beginning of year",
        "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",
      "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LicenseMember": {
     "auth_ref": [
      "r357"
     ],
     "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": [
      "r21",
      "r618",
      "r631"
     ],
     "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": "us-gaap_LineOfCredit",
        "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": [
      "r48"
     ],
     "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": "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity",
        "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": [
      "r48"
     ],
     "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": [
      "r215"
     ],
     "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": [
      "r52"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 5.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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_MeasurementInputDiscountRateMember": {
     "auth_ref": [
      "r530"
     ],
     "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": [
      "r530"
     ],
     "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": [
      "r530"
     ],
     "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": [
      "r107"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
        "totalLabel": "Cash provided by financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "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/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r107"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
        "totalLabel": "Cash used in investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "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/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r107",
      "r109",
      "r112"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
        "totalLabel": "Cash provided by operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "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/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r5",
      "r70",
      "r73",
      "r79",
      "r83",
      "r112",
      "r125",
      "r135",
      "r139",
      "r140",
      "r141",
      "r142",
      "r145",
      "r146",
      "r156",
      "r187",
      "r191",
      "r195",
      "r198",
      "r201",
      "r218",
      "r279",
      "r280",
      "r281",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r528",
      "r540",
      "r622",
      "r639"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": {
       "order": 2.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      },
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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/StatementConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "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 adopted 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": [
      "r491"
     ],
     "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/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NoncurrentAssets": {
     "auth_ref": [
      "r205"
     ],
     "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": "Geograhical 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": [
      "r515"
     ],
     "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": [
      "r180"
     ],
     "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": "us-gaap_NumberOfReportableSegments",
        "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/StatementConsolidatedStatementsOfOperations": {
       "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": "us-gaap_OperatingExpenses",
        "totalLabel": "Operating Expenses, Total"
       }
      }
     },
     "localname": "OperatingExpenses",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [
      "r187",
      "r191",
      "r195",
      "r198",
      "r201"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseCost": {
     "auth_ref": [
      "r575",
      "r583"
     ],
     "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"
       }
      }
     },
     "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": [
      "r570"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.",
        "label": "Total lease obligations",
        "terseLabel": "Operating Lease, Liability, Total"
       }
      }
     },
     "localname": "OperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r570"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 2.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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r570"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 6.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": "us-gaap_OperatingLeaseLiabilityNoncurrent",
        "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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasePayments": {
     "auth_ref": [
      "r571",
      "r577"
     ],
     "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"
       }
      }
     },
     "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": [
      "r569"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 4.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)",
        "terseLabel": "Operating Lease, Right-of-Use Asset"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r580",
      "r583"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average discount rate for operating lease calculated at point in time.",
        "label": "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": [
      "r579",
      "r583"
     ],
     "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)"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_OperatingLossCarryforwards": {
     "auth_ref": [
      "r453"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.",
        "label": "Operating loss carryforwards"
       }
      }
     },
     "localname": "OperatingLossCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r12",
      "r13",
      "r14",
      "r50"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "order": 2.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"
       }
      }
     },
     "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": [
      "r59",
      "r589"
     ],
     "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"
       }
      }
     },
     "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": [
      "r45"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 6.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)",
        "terseLabel": "Other Assets, Noncurrent, Total"
       }
      }
     },
     "localname": "OtherAssetsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "auth_ref": [
      "r64"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": {
       "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 (recovery) expense of ($348) for the year ended January 31, 2022 (January 31, 2021 - $290; January 31, 2020 - ($132))"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax": {
     "auth_ref": [
      "r64",
      "r67",
      "r552",
      "r561"
     ],
     "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/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTax": {
     "auth_ref": [
      "r71",
      "r74",
      "r77",
      "r78",
      "r80",
      "r84",
      "r327",
      "r555",
      "r560",
      "r562",
      "r623",
      "r640"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": {
       "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": "us-gaap_OtherComprehensiveIncomeLossNetOfTax",
        "totalLabel": "Total other comprehensive income (loss)"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r71",
      "r74",
      "r506",
      "r507",
      "r511"
     ],
     "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/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "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/StatementConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock": {
     "auth_ref": [
      "r361",
      "r428"
     ],
     "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 Income and Other Expense Disclosure [Text Block]",
        "terseLabel": "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": [
      "r112"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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": "us-gaap_OtherNoncashIncomeExpense",
        "negatedLabel": "Other non-cash operating activities"
       }
      }
     },
     "localname": "OtherNoncashIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherNonoperatingExpense": {
     "auth_ref": [
      "r96"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "order": 5.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense related to nonoperating activities, classified as other.",
        "label": "Other charges (Note 20)",
        "totalLabel": "Other non-operating expense, Total"
       }
      }
     },
     "localname": "OtherNonoperatingExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "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/StatementConsolidatedBalanceSheets": {
       "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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": {
     "auth_ref": [
      "r104"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForRestructuring": {
     "auth_ref": [
      "r106",
      "r266"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash payments made as the result of exit or disposal activities. Excludes payments associated with a discontinued operation or an asset retirement obligation.",
        "label": "us-gaap_PaymentsForRestructuring",
        "negatedLabel": "Cash draw downs"
       }
      }
     },
     "localname": "PaymentsForRestructuring",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfDebtIssuanceCosts": {
     "auth_ref": [
      "r103"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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": "us-gaap_PaymentsOfDebtIssuanceCosts",
        "negatedLabel": "Payment of debt issuance costs"
       }
      }
     },
     "localname": "PaymentsOfDebtIssuanceCosts",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "auth_ref": [
      "r98"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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": "Net of cash acquired",
        "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/DisclosureSubsequentEventDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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": "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment",
        "negatedLabel": "Additions to property and equipment"
       }
      }
     },
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "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/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PlanNameAxis": {
     "auth_ref": [
      "r379",
      "r413"
     ],
     "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_PolicyTextBlockAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_PolicyTextBlockAbstract",
        "terseLabel": "Accounting Policies"
       }
      }
     },
     "localname": "PolicyTextBlockAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "auth_ref": [
      "r10",
      "r38",
      "r39"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 4.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/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "auth_ref": [
      "r100"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromLinesOfCredit": {
     "auth_ref": [
      "r101",
      "r124"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "auth_ref": [
      "r100",
      "r414"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement.",
        "label": "us-gaap_ProceedsFromStockOptionsExercised",
        "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_PropertyPlantAndEquipmentByTypeAxis": {
     "auth_ref": [
      "r43",
      "r261"
     ],
     "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/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "auth_ref": [
      "r263",
      "r665",
      "r666",
      "r667"
     ],
     "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": [
      "r42",
      "r259"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails": {
       "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"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentGross",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r17",
      "r18",
      "r261",
      "r589",
      "r628",
      "r637"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 3.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/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "auth_ref": [
      "r41",
      "r261",
      "r665",
      "r666"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "terseLabel": "Property and equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "auth_ref": [
      "r17",
      "r261"
     ],
     "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, plant 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": [
      "r17",
      "r259"
     ],
     "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/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.",
        "label": "us-gaap_PropertyPlantAndEquipmentUsefulLife",
        "terseLabel": "Property, Plant and Equipment, Useful Life (Year)"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "auth_ref": [
      "r88",
      "r226"
     ],
     "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"
       }
      }
     },
     "localname": "ProvisionForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ReceivablesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 5 - Trade Accounts Receivable"
       }
      }
     },
     "localname": "ReceivablesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy": {
     "auth_ref": [
      "r36",
      "r213"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized.",
        "label": "Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]",
        "terseLabel": "Provision for Credit Losses"
       }
      }
     },
     "localname": "ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RepaymentsOfDebt": {
     "auth_ref": [
      "r102"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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": "us-gaap_RepaymentsOfDebt",
        "negatedLabel": "Credit facility and other debt repayments"
       }
      }
     },
     "localname": "RepaymentsOfDebt",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "auth_ref": [
      "r429",
      "r605",
      "r679"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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/StatementConsolidatedStatementsOfOperations"
     ],
     "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_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": {
     "auth_ref": [
      "r44",
      "r255",
      "r256",
      "r679"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination.",
        "label": "Research, Development, and Computer Software, Policy [Policy Text Block]",
        "terseLabel": "Research and development costs"
       }
      }
     },
     "localname": "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "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/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expected cost remaining for the specified restructuring cost.",
        "label": "us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1",
        "terseLabel": "Restructuring and Related Cost, Expected Cost Remaining"
       }
      }
     },
     "localname": "RestructuringAndRelatedCostExpectedCostRemaining1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestructuringCharges": {
     "auth_ref": [
      "r111",
      "r264",
      "r268",
      "r270"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_OtherNonoperatingExpense",
       "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 plans",
        "terseLabel": "Restructuring charges"
       }
      }
     },
     "localname": "RestructuringCharges",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestructuringCostAndReserveAxis": {
     "auth_ref": [
      "r265",
      "r266",
      "r270",
      "r271"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of restructuring cost.",
        "label": "Restructuring Type [Axis]"
       }
      }
     },
     "localname": "RestructuringCostAndReserveAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RestructuringPlanAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by individual restructuring plan.",
        "label": "Restructuring Plan [Axis]"
       }
      }
     },
     "localname": "RestructuringPlanAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherCharges",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RestructuringPlanDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification of the individual restructuring plans.",
        "label": "Restructuring Plan [Domain]"
       }
      }
     },
     "localname": "RestructuringPlanDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherCharges",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestructuringReserve": {
     "auth_ref": [
      "r266",
      "r269"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount (including both current and noncurrent portions of the accrual) as of the balance sheet date pertaining to a specified type of cost associated with exit from or disposal of business activities or restructuring pursuant to a duly authorized plan.",
        "label": "us-gaap_RestructuringReserve",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Balance"
       }
      }
     },
     "localname": "RestructuringReserve",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestructuringReserveAccrualAdjustment1": {
     "auth_ref": [
      "r266",
      "r271"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense (reversal of expense) which increases (decreases) the restructuring reserve from an adjustment to a previously accrued restructuring liability.",
        "label": "Accruals and adjustments",
        "terseLabel": "Accruals and adjustments"
       }
      }
     },
     "localname": "RestructuringReserveAccrualAdjustment1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestructuringReserveTranslationAdjustment": {
     "auth_ref": [
      "r266",
      "r271"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of foreign currency translation gain (loss) which decreases (increases) the restructuring reserve.",
        "label": "us-gaap_RestructuringReserveTranslationAdjustment",
        "negatedLabel": "Foreign exchange"
       }
      }
     },
     "localname": "RestructuringReserveTranslationAdjustment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r30",
      "r328",
      "r422",
      "r589",
      "r635",
      "r656",
      "r661"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "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": "Accumulated deficit",
        "terseLabel": "Retained Earnings (Accumulated Deficit), Ending Balance",
        "verboseLabel": "Retained earnings (accumulated deficit)"
       }
      }
     },
     "localname": "RetainedEarningsAccumulatedDeficit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [
      "r2",
      "r131",
      "r132",
      "r133",
      "r136",
      "r144",
      "r146",
      "r222",
      "r419",
      "r420",
      "r421",
      "r463",
      "r464",
      "r526",
      "r652",
      "r654"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings [Member]"
       }
      }
     },
     "localname": "RetainedEarningsMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": {
     "auth_ref": [
      "r183",
      "r184",
      "r190",
      "r196",
      "r197",
      "r203",
      "r204",
      "r207",
      "r352",
      "r353",
      "r606"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "auth_ref": [
      "r121",
      "r344",
      "r345",
      "r346",
      "r347",
      "r348",
      "r349",
      "r350",
      "r351",
      "r360"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue from contract with customer.",
        "label": "Revenue from Contract with Customer [Policy Text Block]",
        "terseLabel": "Revenue recognition"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "auth_ref": [
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r342",
      "r343",
      "r356",
      "r360"
     ],
     "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": [
      "r340"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.",
        "label": "us-gaap_RevenueRemainingPerformanceObligation",
        "terseLabel": "Remaining performance obligation, Amount"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "auth_ref": [
      "r341"
     ],
     "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/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "auth_ref": [
      "r341"
     ],
     "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/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationPercentage": {
     "auth_ref": [
      "r341"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue.",
        "label": "us-gaap_RevenueRemainingPerformanceObligationPercentage",
        "terseLabel": "Remaining performance obligation, Percentage"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationPercentage",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": {
     "auth_ref": [
      "r578",
      "r583"
     ],
     "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"
       }
      }
     },
     "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/DisclosureShareCapital",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": {
     "auth_ref": [
      "r56"
     ],
     "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"
       }
      }
     },
     "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": [
      "r246"
     ],
     "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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": {
     "auth_ref": [
      "r483",
      "r484"
     ],
     "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 Acquisitions of Business"
       }
      }
     },
     "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_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the change in common stock outstanding.",
        "label": "Schedule of Common Stock Outstanding Roll Forward [Table Text Block]",
        "terseLabel": "Schedule of common shares outstanding"
       }
      }
     },
     "localname": "ScheduleOfCommonStockOutstandingRollForwardTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "auth_ref": [
      "r459"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.",
        "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]",
        "terseLabel": "Schedule of components of Income Tax Expense (Benefit)"
       }
      }
     },
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [
      "r450"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.",
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]",
        "terseLabel": "Schedule of deferred tax assets and liabilities"
       }
      }
     },
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "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 derivative assets at fair value"
       }
      }
     },
     "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": [
      "r159"
     ],
     "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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "auth_ref": [
      "r437"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "terseLabel": "Schedule of effective income tax rate reconciliation"
       }
      }
     },
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "auth_ref": [
      "r378",
      "r410",
      "r424"
     ],
     "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 share-based payment arrangement, expensed and capitalized amount"
       }
      }
     },
     "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": [
      "r205"
     ],
     "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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r246",
      "r250"
     ],
     "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]",
        "terseLabel": "Schedule of Intangible Assets"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock": {
     "auth_ref": [
      "r126"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of income before income tax between domestic and foreign jurisdictions.",
        "label": "Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]",
        "terseLabel": "Schedule of Income before Income Tax, Domestic and Foreign"
       }
      }
     },
     "localname": "ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock": {
     "auth_ref": [
      "r392"
     ],
     "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": [
      "r92"
     ],
     "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_ScheduleOfRestructuringReserveByTypeOfCostTextBlock": {
     "auth_ref": [
      "r266",
      "r271"
     ],
     "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": [
      "r89",
      "r204"
     ],
     "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_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "auth_ref": [
      "r187",
      "r188",
      "r194",
      "r241"
     ],
     "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_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock": {
     "auth_ref": [
      "r413"
     ],
     "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": "Schedule of share-based payment arrangement, option, exercise price range"
       }
      }
     },
     "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": [
      "r385",
      "r397",
      "r400"
     ],
     "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 the 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": [
      "r404"
     ],
     "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 Share-based payment award, valuation 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": "Schedule of restricted stock and restricted stock unit activity"
       }
      }
     },
     "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": {
     "auth_ref": [
      "r444",
      "r460"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the change in unrecognized tax benefits.",
        "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]",
        "terseLabel": "Schedule of unrecognized tax benefits roll forward"
       }
      }
     },
     "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "auth_ref": [
      "r179",
      "r181",
      "r182",
      "r187",
      "r189",
      "r195",
      "r199",
      "r200",
      "r201",
      "r202",
      "r203",
      "r206",
      "r207",
      "r208"
     ],
     "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": "Segment Reporting Disclosure [Text Block]",
        "terseLabel": "Segmented Information"
       }
      }
     },
     "localname": "SegmentReportingDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SellingAndMarketingExpense": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": {
       "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/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SellingAndMarketingExpenseMember": {
     "auth_ref": [
      "r87"
     ],
     "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": [
      "r357"
     ],
     "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": [
      "r110"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": {
       "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": "us-gaap_ShareBasedCompensation",
        "verboseLabel": "Stock-based compensation expense (Note 17)"
       }
      }
     },
     "localname": "ShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "auth_ref": [
      "r380"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "auth_ref": [
      "r394"
     ],
     "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": [
      "r394"
     ],
     "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": [
      "r393"
     ],
     "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)",
        "periodStartLabel": "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": [
      "r401"
     ],
     "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)"
       }
      }
     },
     "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": [
      "r395"
     ],
     "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": [
      "r399"
     ],
     "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": [
      "r395"
     ],
     "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": [
      "r407"
     ],
     "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": [
      "r406"
     ],
     "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": [
      "r408"
     ],
     "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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": {
     "auth_ref": [
      "r386",
      "r388"
     ],
     "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)",
        "periodStartLabel": "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": [
      "r413"
     ],
     "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": [
      "r389"
     ],
     "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)"
       }
      }
     },
     "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": [
      "r389"
     ],
     "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)"
       }
      }
     },
     "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": [
      "r399"
     ],
     "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": [
      "r391"
     ],
     "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)"
       }
      }
     },
     "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": [
      "r398"
     ],
     "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": [
      "r413"
     ],
     "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"
       }
      }
     },
     "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": [
      "r387",
      "r413"
     ],
     "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)",
        "periodStartLabel": "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": [
      "r386"
     ],
     "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)",
        "periodStartLabel": "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": [
      "r402"
     ],
     "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": [
      "r400"
     ],
     "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"
       }
      }
     },
     "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": [
      "r401"
     ],
     "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)"
       }
      }
     },
     "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": [
      "r401"
     ],
     "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)"
       }
      }
     },
     "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": [
      "r413"
     ],
     "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": [
      "r377",
      "r382"
     ],
     "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/DisclosureBasisOfPresentationDetails",
      "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)"
       }
      }
     },
     "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)"
       }
      }
     },
     "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)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "auth_ref": [
      "r379",
      "r383"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.",
        "label": "Share-based Payment Arrangement [Policy Text Block]",
        "terseLabel": "Stock-based compensation plans"
       }
      }
     },
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock": {
     "auth_ref": [
      "r384"
     ],
     "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": "Schedule of Share-based payment arrangement, performance shares, outstanding activity"
       }
      }
     },
     "localname": "ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis": {
     "auth_ref": [
      "r403"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by range of option prices pertaining to options granted.",
        "label": "Exercise Price Range [Axis]"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain": {
     "auth_ref": [
      "r409"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices.",
        "label": "Exercise Price Range [Domain]"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit": {
     "auth_ref": [
      "r409"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.",
        "label": "Range of Exercise Prices, Lower Limit (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions": {
     "auth_ref": [
      "r396"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares reserved for issuance pertaining to the outstanding exercisable stock options as of the balance sheet date in the customized range of exercise prices for which the market and performance vesting condition has been satisfied.",
        "label": "Number of Stock Options, Options Exercisable (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions": {
     "auth_ref": [
      "r387"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares reserved for issuance pertaining to the outstanding stock options as of the balance sheet date for all option plans in the customized range of exercise prices.",
        "label": "Number of Stock Options, Options Outstanding (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit": {
     "auth_ref": [
      "r409"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.",
        "label": "Range of Exercise Prices, Upper Limit (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "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"
       }
      }
     },
     "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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": {
     "auth_ref": [
      "r381"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "auth_ref": [
      "r405",
      "r423"
     ],
     "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": [
      "r413"
     ],
     "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"
       }
      }
     },
     "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": [
      "r413"
     ],
     "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)"
       }
      }
     },
     "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)",
        "periodStartLabel": "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)",
        "periodStartLabel": "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": [
      "r401"
     ],
     "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)"
       }
      }
     },
     "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": [
      "r401"
     ],
     "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)"
       }
      }
     },
     "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": [
      "r384"
     ],
     "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",
        "negatedTerseLabel": "Vested (in shares)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "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/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1": {
     "auth_ref": [
      "r389"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average exercise price as of the balance sheet date for those equity-based payment arrangements exercisable and outstanding.",
        "label": "Weighted Average Exercise Price, Options Exercisable (in dollars per share)"
       }
      }
     },
     "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1": {
     "auth_ref": [
      "r387"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average price as of the balance sheet date at which grantees could acquire the underlying shares with respect to all outstanding stock options which are in the customized range of exercise prices.",
        "label": "Weighted Average Exercise Price, Options Outstanding (in dollars per share)"
       }
      }
     },
     "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [
      "r401"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term of outstanding stock options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Weighted Average Remaining Contractual Life, Options Outstanding (Year)"
       }
      }
     },
     "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharesIssuedPricePerShare": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Per share or per unit amount of equity securities issued.",
        "label": "us-gaap_SharesIssuedPricePerShare",
        "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": [
      "r576",
      "r583"
     ],
     "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"
       }
      }
     },
     "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": [
      "r118",
      "r130"
     ],
     "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": [
      "r439"
     ],
     "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": [
      "r25",
      "r26",
      "r27",
      "r123",
      "r125",
      "r150",
      "r154",
      "r155",
      "r157",
      "r159",
      "r168",
      "r169",
      "r170",
      "r218",
      "r279",
      "r283",
      "r284",
      "r285",
      "r288",
      "r289",
      "r322",
      "r323",
      "r325",
      "r326",
      "r327",
      "r540",
      "r687"
     ],
     "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": [
      "r2",
      "r55",
      "r77",
      "r78",
      "r79",
      "r131",
      "r132",
      "r133",
      "r136",
      "r144",
      "r146",
      "r167",
      "r222",
      "r327",
      "r328",
      "r419",
      "r420",
      "r421",
      "r463",
      "r464",
      "r526",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r562",
      "r652",
      "r653",
      "r654",
      "r705"
     ],
     "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/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "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/DisclosureAccruedLiabilities",
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables",
      "http://www.descartes.com/role/DisclosureAcquisitions",
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsTables",
      "http://www.descartes.com/role/DisclosureBasisOfPresentation",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationTables",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables",
      "http://www.descartes.com/role/DisclosureDescriptionOfBusiness",
      "http://www.descartes.com/role/DisclosureEarningsPerShare",
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareTables",
      "http://www.descartes.com/role/DisclosureFairValueMeasurements",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables",
      "http://www.descartes.com/role/DisclosureGoodwill",
      "http://www.descartes.com/role/DisclosureGoodwillDetails",
      "http://www.descartes.com/role/DisclosureGoodwillTables",
      "http://www.descartes.com/role/DisclosureIncomeTaxes",
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables",
      "http://www.descartes.com/role/DisclosureIntangibleAssets",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsTables",
      "http://www.descartes.com/role/DisclosureInventory",
      "http://www.descartes.com/role/DisclosureLeases",
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails",
      "http://www.descartes.com/role/DisclosureLeasesDetails",
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureLeasesTables",
      "http://www.descartes.com/role/DisclosureLongTermDebt",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails",
      "http://www.descartes.com/role/DisclosureOtherCharges",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesTables",
      "http://www.descartes.com/role/DisclosureOtherReceivables",
      "http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails",
      "http://www.descartes.com/role/DisclosureOtherReceivablesTables",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipment",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables",
      "http://www.descartes.com/role/DisclosureSegmentedInformation",
      "http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables",
      "http://www.descartes.com/role/DisclosureShareCapital",
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalTables",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlans",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails",
      "http://www.descartes.com/role/DisclosureSubsequentEvent",
      "http://www.descartes.com/role/DisclosureSubsequentEventDetails",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivable",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "localname": "StatementOfCashFlowsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "localname": "StatementOfFinancialPositionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Comprehensive Income [Abstract]"
       }
      }
     },
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "localname": "StatementOfStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [
      "r131",
      "r132",
      "r133",
      "r167",
      "r606"
     ],
     "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/DisclosureAccruedLiabilities",
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables",
      "http://www.descartes.com/role/DisclosureAcquisitions",
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetailsParentheticals",
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsTables",
      "http://www.descartes.com/role/DisclosureBasisOfPresentation",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationTables",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts1Details",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts2Details",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables",
      "http://www.descartes.com/role/DisclosureDescriptionOfBusiness",
      "http://www.descartes.com/role/DisclosureEarningsPerShare",
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareTables",
      "http://www.descartes.com/role/DisclosureFairValueMeasurements",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables",
      "http://www.descartes.com/role/DisclosureGoodwill",
      "http://www.descartes.com/role/DisclosureGoodwillDetails",
      "http://www.descartes.com/role/DisclosureGoodwillTables",
      "http://www.descartes.com/role/DisclosureIncomeTaxes",
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables",
      "http://www.descartes.com/role/DisclosureIntangibleAssets",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsTables",
      "http://www.descartes.com/role/DisclosureInventory",
      "http://www.descartes.com/role/DisclosureLeases",
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails",
      "http://www.descartes.com/role/DisclosureLeasesDetails",
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureLeasesTables",
      "http://www.descartes.com/role/DisclosureLongTermDebt",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails",
      "http://www.descartes.com/role/DisclosureOtherCharges",
      "http://www.descartes.com/role/DisclosureOtherChargesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesTables",
      "http://www.descartes.com/role/DisclosureOtherReceivables",
      "http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails",
      "http://www.descartes.com/role/DisclosureOtherReceivablesTables",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipment",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables",
      "http://www.descartes.com/role/DisclosureSegmentedInformation",
      "http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables",
      "http://www.descartes.com/role/DisclosureShareCapital",
      "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalTables",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlans",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails",
      "http://www.descartes.com/role/DisclosureSubsequentEvent",
      "http://www.descartes.com/role/DisclosureSubsequentEventDetails",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivable",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets",
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "auth_ref": [
      "r26",
      "r27",
      "r327",
      "r328"
     ],
     "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/DisclosureShareCapitalCommonSharesOutstandingDetails",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "auth_ref": [
      "r26",
      "r27",
      "r327",
      "r328",
      "r390"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of share options (or share units) exercised during the current period.",
        "label": "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised",
        "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_StockIssuedDuringPeriodValueAcquisitions": {
     "auth_ref": [
      "r55",
      "r327",
      "r328"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of stock issued pursuant to acquisitions during the period.",
        "label": "Acquisitions (Note 3)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueAcquisitions",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueNewIssues": {
     "auth_ref": [
      "r26",
      "r27",
      "r327",
      "r328"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.",
        "label": "Issuance of common shares, net of issuance costs (Note 15)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueNewIssues",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "auth_ref": [
      "r55",
      "r327",
      "r328"
     ],
     "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/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r27",
      "r32",
      "r33",
      "r125",
      "r214",
      "r218",
      "r540",
      "r589"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": {
       "order": 2.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": "us-gaap_StockholdersEquity",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Balance",
        "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/StatementConsolidatedBalanceSheets",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "SHAREHOLDERS' EQUITY (Note 15)"
       }
      }
     },
     "localname": "StockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventMember": {
     "auth_ref": [
      "r563",
      "r591"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event"
       }
      }
     },
     "localname": "SubsequentEventMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSubsequentEvent",
      "http://www.descartes.com/role/DisclosureSubsequentEventDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "auth_ref": [
      "r563",
      "r591"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event Type [Axis]"
       }
      }
     },
     "localname": "SubsequentEventTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSubsequentEvent",
      "http://www.descartes.com/role/DisclosureSubsequentEventDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "auth_ref": [
      "r563",
      "r591"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event Type [Domain]"
       }
      }
     },
     "localname": "SubsequentEventTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSubsequentEvent",
      "http://www.descartes.com/role/DisclosureSubsequentEventDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "auth_ref": [
      "r590",
      "r593"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.",
        "label": "Subsequent Events [Text Block]",
        "terseLabel": "Subsequent Event"
       }
      }
     },
     "localname": "SubsequentEventsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSubsequentEvent"
     ],
     "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/DisclosureShareCapital",
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock": {
     "auth_ref": [
      "r454"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of pertinent information, such as tax authority, amounts, and expiration dates, of net operating loss carryforwards, including an assessment of the likelihood of utilization.",
        "label": "Summary of Operating Loss Carryforwards [Table Text Block]",
        "terseLabel": "Summary of operating loss carryforwards"
       }
      }
     },
     "localname": "SummaryOfOperatingLossCarryforwardsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "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/StatementConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_TableTextBlock",
        "terseLabel": "Notes Tables"
       }
      }
     },
     "localname": "TableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables",
      "http://www.descartes.com/role/DisclosureAcquisitionsTables",
      "http://www.descartes.com/role/DisclosureBasisOfPresentationTables",
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables",
      "http://www.descartes.com/role/DisclosureEarningsPerShareTables",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables",
      "http://www.descartes.com/role/DisclosureGoodwillTables",
      "http://www.descartes.com/role/DisclosureIncomeTaxesTables",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsTables",
      "http://www.descartes.com/role/DisclosureLeasesTables",
      "http://www.descartes.com/role/DisclosureOtherChargesTables",
      "http://www.descartes.com/role/DisclosureOtherReceivablesTables",
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables",
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables",
      "http://www.descartes.com/role/DisclosureShareCapitalTables",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables",
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxPeriodAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information about the period subject to enacted tax laws.",
        "label": "Tax Period [Axis]"
       }
      }
     },
     "localname": "TaxPeriodAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxPeriodDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identified tax period.",
        "label": "Tax Period [Domain]"
       }
      }
     },
     "localname": "TaxPeriodDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TradeNamesMember": {
     "auth_ref": [
      "r490"
     ],
     "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/DisclosureBasisOfPresentationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TypeOfAdoptionMember": {
     "auth_ref": [
      "r0",
      "r1",
      "r2",
      "r3",
      "r4",
      "r135",
      "r136",
      "r137",
      "r138",
      "r147",
      "r216",
      "r217",
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r278",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r461",
      "r462",
      "r463",
      "r464",
      "r518",
      "r519",
      "r520",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r585",
      "r608",
      "r609",
      "r610",
      "r650",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r661",
      "r701",
      "r702",
      "r703",
      "r704",
      "r705"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amendment to accounting standards.",
        "label": "Accounting Standards Update [Domain]"
       }
      }
     },
     "localname": "TypeOfAdoptionMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TypeOfRestructuringDomain": {
     "auth_ref": [
      "r265",
      "r266",
      "r270",
      "r271"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification of the types of restructuring costs.",
        "label": "Type of Restructuring [Domain]"
       }
      }
     },
     "localname": "TypeOfRestructuringDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesRestructuringProvisionDetails"
     ],
     "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": "us-gaap_UnbilledReceivablesCurrent",
        "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": [
      "r430",
      "r475",
      "r629",
      "r662"
     ],
     "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": "us-gaap_UndistributedEarningsOfForeignSubsidiaries",
        "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_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": {
     "auth_ref": [
      "r441"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.",
        "label": "Gross increases - current period"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": {
     "auth_ref": [
      "r442"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.",
        "label": "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations",
        "negatedLabel": "Lapsing due to statutes of limitations"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": {
     "auth_ref": [
      "r443"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.",
        "label": "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate",
        "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_UseOfEstimates": {
     "auth_ref": [
      "r171",
      "r172",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "terseLabel": "Use of estimates"
       }
      }
     },
     "localname": "UseOfEstimates",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "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": [
      "r149",
      "r159"
     ],
     "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 (in shares)",
        "terseLabel": "Weighted average common and common equivalent shares outstanding (in shares)"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "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/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r148",
      "r159"
     ],
     "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 (in shares)",
        "terseLabel": "Weighted average shares outstanding (in shares)"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "sharesItemType"
    }
   },
   "unitCount": 7
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "105",
   "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "105",
   "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695"
  },
  "r10": {
   "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"
  },
  "r100": {
   "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"
  },
  "r101": {
   "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"
  },
  "r102": {
   "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"
  },
  "r103": {
   "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"
  },
  "r104": {
   "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"
  },
  "r105": {
   "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"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3367-108585"
  },
  "r107": {
   "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"
  },
  "r108": {
   "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"
  },
  "r109": {
   "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"
  },
  "r11": {
   "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"
  },
  "r110": {
   "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"
  },
  "r111": {
   "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"
  },
  "r112": {
   "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"
  },
  "r113": {
   "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"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4273-108586"
  },
  "r115": {
   "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"
  },
  "r116": {
   "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"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "230",
   "URI": "http://asc.fasb.org/topic&trid=2134446"
  },
  "r118": {
   "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"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
  },
  "r12": {
   "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"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
  },
  "r122": {
   "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"
  },
  "r123": {
   "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"
  },
  "r124": {
   "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"
  },
  "r125": {
   "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"
  },
  "r126": {
   "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"
  },
  "r127": {
   "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"
  },
  "r128": {
   "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"
  },
  "r129": {
   "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"
  },
  "r13": {
   "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"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "http://asc.fasb.org/topic&trid=2122369"
  },
  "r131": {
   "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"
  },
  "r132": {
   "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"
  },
  "r133": {
   "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"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21728-107793"
  },
  "r135": {
   "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"
  },
  "r136": {
   "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"
  },
  "r137": {
   "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"
  },
  "r138": {
   "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"
  },
  "r139": {
   "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"
  },
  "r14": {
   "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"
  },
  "r140": {
   "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"
  },
  "r141": {
   "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"
  },
  "r142": {
   "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"
  },
  "r143": {
   "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"
  },
  "r144": {
   "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"
  },
  "r145": {
   "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"
  },
  "r146": {
   "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"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.M.Q2)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=122038215&loc=d3e31137-122693"
  },
  "r148": {
   "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"
  },
  "r149": {
   "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"
  },
  "r15": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766"
  },
  "r150": {
   "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"
  },
  "r151": {
   "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"
  },
  "r152": {
   "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"
  },
  "r153": {
   "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"
  },
  "r154": {
   "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"
  },
  "r155": {
   "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"
  },
  "r156": {
   "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"
  },
  "r157": {
   "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"
  },
  "r158": {
   "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"
  },
  "r159": {
   "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"
  },
  "r16": {
   "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"
  },
  "r160": {
   "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"
  },
  "r161": {
   "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"
  },
  "r162": {
   "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"
  },
  "r163": {
   "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"
  },
  "r164": {
   "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"
  },
  "r165": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "260",
   "URI": "http://asc.fasb.org/topic&trid=2144383"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=124437754&loc=d3e543-108305"
  },
  "r167": {
   "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"
  },
  "r168": {
   "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"
  },
  "r169": {
   "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"
  },
  "r17": {
   "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"
  },
  "r170": {
   "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"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "275",
   "URI": "http://asc.fasb.org/topic&trid=2134479"
  },
  "r179": {
   "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"
  },
  "r18": {
   "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"
  },
  "r180": {
   "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"
  },
  "r181": {
   "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"
  },
  "r182": {
   "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"
  },
  "r183": {
   "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"
  },
  "r184": {
   "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"
  },
  "r185": {
   "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"
  },
  "r186": {
   "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"
  },
  "r187": {
   "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"
  },
  "r188": {
   "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"
  },
  "r189": {
   "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"
  },
  "r19": {
   "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"
  },
  "r190": {
   "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"
  },
  "r191": {
   "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"
  },
  "r192": {
   "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"
  },
  "r193": {
   "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"
  },
  "r194": {
   "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"
  },
  "r195": {
   "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"
  },
  "r196": {
   "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"
  },
  "r197": {
   "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"
  },
  "r198": {
   "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"
  },
  "r199": {
   "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"
  },
  "r2": {
   "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"
  },
  "r20": {
   "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"
  },
  "r200": {
   "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"
  },
  "r201": {
   "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"
  },
  "r202": {
   "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"
  },
  "r203": {
   "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"
  },
  "r204": {
   "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"
  },
  "r205": {
   "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"
  },
  "r206": {
   "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"
  },
  "r207": {
   "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"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "280",
   "URI": "http://asc.fasb.org/topic&trid=2134510"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4647-111522"
  },
  "r21": {
   "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"
  },
  "r210": {
   "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"
  },
  "r211": {
   "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"
  },
  "r212": {
   "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"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5144-111524"
  },
  "r214": {
   "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"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/subtopic&trid=2196772"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=124402435&loc=SL124402458-218513"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=124402435&loc=SL124402458-218513"
  },
  "r218": {
   "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"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r22": {
   "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"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r222": {
   "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"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(4)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r225": {
   "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"
  },
  "r226": {
   "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"
  },
  "r227": {
   "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"
  },
  "r228": {
   "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"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(26)(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "330",
   "URI": "http://asc.fasb.org/topic&trid=2126998"
  },
  "r232": {
   "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"
  },
  "r233": {
   "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"
  },
  "r234": {
   "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"
  },
  "r235": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13777-109266"
  },
  "r236": {
   "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"
  },
  "r237": {
   "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"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r239": {
   "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"
  },
  "r24": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(26)(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r240": {
   "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"
  },
  "r241": {
   "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"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/subtopic&trid=2144439"
  },
  "r244": {
   "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"
  },
  "r245": {
   "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"
  },
  "r246": {
   "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"
  },
  "r247": {
   "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"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r249": {
   "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"
  },
  "r25": {
   "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"
  },
  "r250": {
   "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"
  },
  "r251": {
   "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"
  },
  "r252": {
   "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"
  },
  "r253": {
   "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"
  },
  "r254": {
   "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"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "40",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=118172244&loc=d3e17916-109280"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "50",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=16397303&loc=d3e19347-109286"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "350",
   "URI": "http://asc.fasb.org/topic&trid=2144416"
  },
  "r258": {
   "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"
  },
  "r259": {
   "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"
  },
  "r26": {
   "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"
  },
  "r260": {
   "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"
  },
  "r261": {
   "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"
  },
  "r262": {
   "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"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "360",
   "URI": "http://asc.fasb.org/topic&trid=2155823"
  },
  "r264": {
   "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"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r266": {
   "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"
  },
  "r267": {
   "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"
  },
  "r268": {
   "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"
  },
  "r269": {
   "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"
  },
  "r27": {
   "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"
  },
  "r270": {
   "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"
  },
  "r271": {
   "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"
  },
  "r272": {
   "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"
  },
  "r273": {
   "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"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "440",
   "URI": "http://asc.fasb.org/topic&trid=2144648"
  },
  "r275": {
   "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"
  },
  "r276": {
   "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"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "450",
   "URI": "http://asc.fasb.org/topic&trid=2127136"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S65",
   "SubTopic": "10",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359872&loc=SL124427846-239511"
  },
  "r279": {
   "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"
  },
  "r28": {
   "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"
  },
  "r280": {
   "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"
  },
  "r281": {
   "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"
  },
  "r282": {
   "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"
  },
  "r283": {
   "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"
  },
  "r284": {
   "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"
  },
  "r285": {
   "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"
  },
  "r286": {
   "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"
  },
  "r287": {
   "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"
  },
  "r288": {
   "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"
  },
  "r289": {
   "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"
  },
  "r29": {
   "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"
  },
  "r290": {
   "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"
  },
  "r291": {
   "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"
  },
  "r292": {
   "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"
  },
  "r293": {
   "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"
  },
  "r294": {
   "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"
  },
  "r295": {
   "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"
  },
  "r296": {
   "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"
  },
  "r297": {
   "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"
  },
  "r298": {
   "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"
  },
  "r299": {
   "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"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "105",
   "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695"
  },
  "r30": {
   "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"
  },
  "r300": {
   "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"
  },
  "r301": {
   "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"
  },
  "r302": {
   "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"
  },
  "r303": {
   "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"
  },
  "r304": {
   "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"
  },
  "r305": {
   "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"
  },
  "r306": {
   "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"
  },
  "r307": {
   "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"
  },
  "r308": {
   "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"
  },
  "r309": {
   "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"
  },
  "r31": {
   "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"
  },
  "r310": {
   "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"
  },
  "r311": {
   "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"
  },
  "r312": {
   "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"
  },
  "r313": {
   "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"
  },
  "r314": {
   "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"
  },
  "r315": {
   "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"
  },
  "r316": {
   "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"
  },
  "r317": {
   "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"
  },
  "r318": {
   "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"
  },
  "r319": {
   "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"
  },
  "r32": {
   "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"
  },
  "r320": {
   "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"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "470",
   "URI": "http://asc.fasb.org/topic&trid=2208564"
  },
  "r322": {
   "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"
  },
  "r323": {
   "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"
  },
  "r324": {
   "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"
  },
  "r325": {
   "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"
  },
  "r326": {
   "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"
  },
  "r327": {
   "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"
  },
  "r328": {
   "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"
  },
  "r329": {
   "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"
  },
  "r33": {
   "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"
  },
  "r330": {
   "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"
  },
  "r331": {
   "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"
  },
  "r332": {
   "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"
  },
  "r333": {
   "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"
  },
  "r334": {
   "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"
  },
  "r335": {
   "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"
  },
  "r336": {
   "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"
  },
  "r337": {
   "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"
  },
  "r338": {
   "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"
  },
  "r339": {
   "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"
  },
  "r34": {
   "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"
  },
  "r340": {
   "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"
  },
  "r341": {
   "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"
  },
  "r342": {
   "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"
  },
  "r343": {
   "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"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130561-203045"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130563-203045"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130563-203045"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130564-203045"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045"
  },
  "r35": {
   "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"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045"
  },
  "r352": {
   "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"
  },
  "r353": {
   "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"
  },
  "r354": {
   "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"
  },
  "r355": {
   "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"
  },
  "r356": {
   "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"
  },
  "r357": {
   "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"
  },
  "r358": {
   "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"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123338486&loc=SL49131195-203048"
  },
  "r36": {
   "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"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "606",
   "URI": "http://asc.fasb.org/topic&trid=49130388"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "610",
   "URI": "http://asc.fasb.org/topic&trid=49130413"
  },
  "r362": {
   "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"
  },
  "r363": {
   "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"
  },
  "r364": {
   "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"
  },
  "r365": {
   "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"
  },
  "r366": {
   "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"
  },
  "r367": {
   "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"
  },
  "r368": {
   "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"
  },
  "r369": {
   "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"
  },
  "r37": {
   "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"
  },
  "r370": {
   "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"
  },
  "r371": {
   "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"
  },
  "r372": {
   "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"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(f)(3)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947"
  },
  "r374": {
   "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"
  },
  "r375": {
   "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"
  },
  "r376": {
   "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"
  },
  "r377": {
   "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"
  },
  "r378": {
   "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"
  },
  "r379": {
   "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"
  },
  "r38": {
   "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"
  },
  "r380": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(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": "(a)(2)",
   "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": "(a),(g)",
   "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",
   "Subparagraph": "(b),(f)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r384": {
   "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"
  },
  "r385": {
   "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"
  },
  "r386": {
   "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"
  },
  "r387": {
   "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"
  },
  "r388": {
   "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"
  },
  "r389": {
   "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"
  },
  "r39": {
   "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"
  },
  "r390": {
   "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"
  },
  "r391": {
   "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"
  },
  "r392": {
   "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"
  },
  "r393": {
   "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"
  },
  "r394": {
   "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"
  },
  "r395": {
   "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"
  },
  "r396": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(iii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r397": {
   "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"
  },
  "r398": {
   "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"
  },
  "r399": {
   "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"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "105",
   "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695"
  },
  "r40": {
   "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"
  },
  "r400": {
   "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"
  },
  "r401": {
   "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"
  },
  "r402": {
   "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"
  },
  "r403": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r404": {
   "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"
  },
  "r405": {
   "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"
  },
  "r406": {
   "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"
  },
  "r407": {
   "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"
  },
  "r408": {
   "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"
  },
  "r409": {
   "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"
  },
  "r41": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.13(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r410": {
   "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"
  },
  "r411": {
   "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"
  },
  "r412": {
   "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"
  },
  "r413": {
   "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"
  },
  "r414": {
   "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"
  },
  "r415": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r416": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r419": {
   "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"
  },
  "r42": {
   "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"
  },
  "r420": {
   "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"
  },
  "r421": {
   "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"
  },
  "r422": {
   "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"
  },
  "r423": {
   "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"
  },
  "r424": {
   "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"
  },
  "r425": {
   "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"
  },
  "r426": {
   "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"
  },
  "r427": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "http://asc.fasb.org/topic&trid=2228938"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "720",
   "URI": "http://asc.fasb.org/topic&trid=2122503"
  },
  "r429": {
   "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"
  },
  "r43": {
   "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"
  },
  "r430": {
   "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"
  },
  "r431": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32059-109318"
  },
  "r432": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318"
  },
  "r434": {
   "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"
  },
  "r435": {
   "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"
  },
  "r436": {
   "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"
  },
  "r437": {
   "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"
  },
  "r438": {
   "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"
  },
  "r439": {
   "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"
  },
  "r44": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.15)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319"
  },
  "r441": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319"
  },
  "r442": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(4)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319"
  },
  "r443": {
   "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"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319"
  },
  "r445": {
   "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"
  },
  "r446": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
  },
  "r448": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
  },
  "r45": {
   "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"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
  },
  "r451": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319"
  },
  "r452": {
   "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"
  },
  "r453": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319"
  },
  "r454": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319"
  },
  "r455": {
   "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"
  },
  "r456": {
   "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"
  },
  "r457": {
   "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"
  },
  "r458": {
   "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"
  },
  "r459": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
  },
  "r46": {
   "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"
  },
  "r460": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "217",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=124434304&loc=d3e36027-109320"
  },
  "r461": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277"
  },
  "r463": {
   "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"
  },
  "r464": {
   "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"
  },
  "r465": {
   "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"
  },
  "r466": {
   "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"
  },
  "r467": {
   "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"
  },
  "r468": {
   "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"
  },
  "r469": {
   "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"
  },
  "r47": {
   "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"
  },
  "r470": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r471": {
   "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"
  },
  "r472": {
   "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"
  },
  "r473": {
   "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"
  },
  "r474": {
   "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"
  },
  "r475": {
   "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"
  },
  "r476": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "http://asc.fasb.org/topic&trid=2144680"
  },
  "r477": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Subparagraph": "(a)-(d)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457"
  },
  "r478": {
   "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"
  },
  "r479": {
   "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"
  },
  "r48": {
   "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"
  },
  "r480": {
   "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"
  },
  "r481": {
   "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"
  },
  "r482": {
   "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"
  },
  "r483": {
   "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"
  },
  "r484": {
   "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"
  },
  "r485": {
   "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"
  },
  "r486": {
   "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"
  },
  "r487": {
   "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"
  },
  "r488": {
   "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"
  },
  "r489": {
   "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"
  },
  "r49": {
   "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"
  },
  "r490": {
   "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"
  },
  "r491": {
   "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"
  },
  "r492": {
   "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"
  },
  "r493": {
   "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"
  },
  "r494": {
   "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"
  },
  "r495": {
   "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"
  },
  "r496": {
   "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"
  },
  "r497": {
   "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"
  },
  "r498": {
   "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"
  },
  "r499": {
   "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"
  },
  "r5": {
   "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"
  },
  "r50": {
   "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"
  },
  "r500": {
   "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"
  },
  "r501": {
   "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"
  },
  "r502": {
   "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"
  },
  "r503": {
   "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"
  },
  "r504": {
   "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"
  },
  "r505": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "805",
   "URI": "http://asc.fasb.org/topic&trid=2303972"
  },
  "r506": {
   "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"
  },
  "r507": {
   "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"
  },
  "r508": {
   "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"
  },
  "r509": {
   "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"
  },
  "r51": {
   "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"
  },
  "r510": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684"
  },
  "r511": {
   "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"
  },
  "r512": {
   "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"
  },
  "r513": {
   "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"
  },
  "r514": {
   "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"
  },
  "r515": {
   "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"
  },
  "r516": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959"
  },
  "r517": {
   "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"
  },
  "r518": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(1)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r519": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(2)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r52": {
   "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"
  },
  "r520": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(3)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r521": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)(1)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r522": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)(2)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r523": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r524": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r525": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(2)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r526": {
   "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"
  },
  "r527": {
   "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"
  },
  "r528": {
   "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"
  },
  "r529": {
   "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"
  },
  "r53": {
   "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"
  },
  "r530": {
   "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"
  },
  "r531": {
   "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"
  },
  "r532": {
   "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"
  },
  "r533": {
   "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"
  },
  "r534": {
   "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"
  },
  "r535": {
   "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"
  },
  "r536": {
   "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"
  },
  "r537": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "60",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=7493716&loc=d3e21868-110260"
  },
  "r538": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13279-108611"
  },
  "r539": {
   "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"
  },
  "r54": {
   "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"
  },
  "r540": {
   "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"
  },
  "r541": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL120254526-165497"
  },
  "r542": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL120254526-165497"
  },
  "r543": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL121967933-165497"
  },
  "r544": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL121967933-165497"
  },
  "r545": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL121967933-165497"
  },
  "r546": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL121967933-165497"
  },
  "r547": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL122642865-165497"
  },
  "r548": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL122642865-165497"
  },
  "r549": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=120253306&loc=d3e28228-110885"
  },
  "r55": {
   "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"
  },
  "r550": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=123602790&loc=d3e30226-110892"
  },
  "r551": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=125521441&loc=d3e30690-110894"
  },
  "r552": {
   "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"
  },
  "r553": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=124440516&loc=d3e30840-110895"
  },
  "r554": {
   "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"
  },
  "r555": {
   "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"
  },
  "r556": {
   "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"
  },
  "r557": {
   "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"
  },
  "r558": {
   "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"
  },
  "r559": {
   "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"
  },
  "r56": {
   "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"
  },
  "r560": {
   "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"
  },
  "r561": {
   "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"
  },
  "r562": {
   "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"
  },
  "r563": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901"
  },
  "r564": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "830",
   "URI": "http://asc.fasb.org/topic&trid=2175825"
  },
  "r565": {
   "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"
  },
  "r566": {
   "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"
  },
  "r567": {
   "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"
  },
  "r568": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123341672&loc=SL77916155-209984"
  },
  "r569": {
   "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"
  },
  "r57": {
   "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"
  },
  "r570": {
   "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"
  },
  "r571": {
   "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"
  },
  "r572": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918666-209980"
  },
  "r573": {
   "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"
  },
  "r574": {
   "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"
  },
  "r575": {
   "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"
  },
  "r576": {
   "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"
  },
  "r577": {
   "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"
  },
  "r578": {
   "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"
  },
  "r579": {
   "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"
  },
  "r58": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r580": {
   "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"
  },
  "r581": {
   "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"
  },
  "r582": {
   "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"
  },
  "r583": {
   "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"
  },
  "r584": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/subtopic&trid=77888251"
  },
  "r585": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "848",
   "URI": "http://asc.fasb.org/extlink&oid=122150657&loc=SL122150809-237846"
  },
  "r586": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39599-107864"
  },
  "r587": {
   "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"
  },
  "r588": {
   "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"
  },
  "r589": {
   "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"
  },
  "r59": {
   "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"
  },
  "r590": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "855",
   "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662"
  },
  "r591": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "855",
   "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662"
  },
  "r592": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "855",
   "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314020-165662"
  },
  "r593": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "855",
   "URI": "http://asc.fasb.org/topic&trid=2122774"
  },
  "r594": {
   "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"
  },
  "r595": {
   "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"
  },
  "r596": {
   "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"
  },
  "r597": {
   "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"
  },
  "r598": {
   "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"
  },
  "r599": {
   "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"
  },
  "r6": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "205",
   "URI": "http://asc.fasb.org/topic&trid=2122149"
  },
  "r60": {
   "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"
  },
  "r600": {
   "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"
  },
  "r601": {
   "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"
  },
  "r602": {
   "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"
  },
  "r603": {
   "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"
  },
  "r604": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "330",
   "Topic": "912",
   "URI": "http://asc.fasb.org/extlink&oid=6471895&loc=d3e55923-109411"
  },
  "r605": {
   "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"
  },
  "r606": {
   "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"
  },
  "r607": {
   "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"
  },
  "r608": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r609": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r61": {
   "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"
  },
  "r610": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r611": {
   "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"
  },
  "r612": {
   "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"
  },
  "r613": {
   "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"
  },
  "r614": {
   "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"
  },
  "r615": {
   "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"
  },
  "r616": {
   "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"
  },
  "r617": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15)(2))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r618": {
   "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"
  },
  "r619": {
   "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"
  },
  "r62": {
   "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"
  },
  "r620": {
   "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"
  },
  "r621": {
   "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"
  },
  "r622": {
   "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"
  },
  "r623": {
   "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"
  },
  "r624": {
   "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"
  },
  "r625": {
   "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"
  },
  "r626": {
   "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"
  },
  "r627": {
   "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"
  },
  "r628": {
   "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"
  },
  "r629": {
   "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"
  },
  "r63": {
   "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"
  },
  "r630": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(15)(b)(2))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r631": {
   "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"
  },
  "r632": {
   "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"
  },
  "r633": {
   "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"
  },
  "r634": {
   "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"
  },
  "r635": {
   "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"
  },
  "r636": {
   "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"
  },
  "r637": {
   "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"
  },
  "r638": {
   "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"
  },
  "r639": {
   "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"
  },
  "r64": {
   "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"
  },
  "r640": {
   "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"
  },
  "r641": {
   "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"
  },
  "r642": {
   "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"
  },
  "r643": {
   "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"
  },
  "r644": {
   "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"
  },
  "r645": {
   "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"
  },
  "r646": {
   "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"
  },
  "r647": {
   "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"
  },
  "r648": {
   "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"
  },
  "r649": {
   "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"
  },
  "r65": {
   "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"
  },
  "r650": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r651": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r652": {
   "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"
  },
  "r653": {
   "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"
  },
  "r654": {
   "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"
  },
  "r655": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(1)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r656": {
   "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"
  },
  "r657": {
   "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"
  },
  "r658": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iii)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r659": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iv)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r66": {
   "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"
  },
  "r660": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(1)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r661": {
   "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"
  },
  "r662": {
   "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"
  },
  "r663": {
   "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"
  },
  "r664": {
   "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"
  },
  "r665": {
   "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"
  },
  "r666": {
   "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"
  },
  "r667": {
   "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"
  },
  "r668": {
   "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"
  },
  "r669": {
   "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"
  },
  "r67": {
   "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"
  },
  "r670": {
   "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"
  },
  "r671": {
   "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"
  },
  "r672": {
   "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"
  },
  "r673": {
   "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"
  },
  "r674": {
   "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"
  },
  "r675": {
   "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"
  },
  "r676": {
   "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"
  },
  "r677": {
   "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"
  },
  "r678": {
   "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"
  },
  "r679": {
   "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"
  },
  "r68": {
   "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"
  },
  "r680": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12"
  },
  "r681": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b"
  },
  "r682": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r683": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r684": {
   "Name": "Form 10-K",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "310"
  },
  "r685": {
   "Name": "Form 20-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "220",
   "Subsection": "f"
  },
  "r686": {
   "Name": "Form 40-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "240",
   "Subsection": "f"
  },
  "r687": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(a)",
   "Publisher": "SEC",
   "Section": "1402"
  },
  "r688": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r689": {
   "Footnote": "2",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28"
  },
  "r69": {
   "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"
  },
  "r690": {
   "Footnote": "4",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "29"
  },
  "r691": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column B",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28"
  },
  "r692": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column C",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28"
  },
  "r693": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column D",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28"
  },
  "r694": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column E",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28"
  },
  "r695": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column F",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28"
  },
  "r696": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column G",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28"
  },
  "r697": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column H",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28"
  },
  "r698": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column I",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28"
  },
  "r699": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "i",
   "Publisher": "SEC",
   "Section": "3",
   "Subsection": "10"
  },
  "r7": {
   "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"
  },
  "r70": {
   "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"
  },
  "r700": {
   "Name": "Securities Act",
   "Number": "230",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r701": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "848"
  },
  "r702": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "848"
  },
  "r703": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "848"
  },
  "r704": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(01)",
   "Topic": "848"
  },
  "r705": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Topic": "848"
  },
  "r71": {
   "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"
  },
  "r72": {
   "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"
  },
  "r73": {
   "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"
  },
  "r74": {
   "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"
  },
  "r75": {
   "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"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067"
  },
  "r77": {
   "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"
  },
  "r78": {
   "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"
  },
  "r79": {
   "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"
  },
  "r8": {
   "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"
  },
  "r80": {
   "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"
  },
  "r81": {
   "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"
  },
  "r82": {
   "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"
  },
  "r83": {
   "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"
  },
  "r84": {
   "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"
  },
  "r85": {
   "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"
  },
  "r86": {
   "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"
  },
  "r87": {
   "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"
  },
  "r88": {
   "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"
  },
  "r89": {
   "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"
  },
  "r9": {
   "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"
  },
  "r90": {
   "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"
  },
  "r91": {
   "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"
  },
  "r92": {
   "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"
  },
  "r93": {
   "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"
  },
  "r94": {
   "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"
  },
  "r95": {
   "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"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.9)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r97": {
   "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"
  },
  "r98": {
   "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"
  },
  "r99": {
   "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"
  }
 },
 "version": "2.1"
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>135
<FILENAME>0001104659-22-045933-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001104659-22-045933-xbrl.zip
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
M5EY!9\9GI)N;:X+K#% U=4_1PU-(,T-2'1QE0*&EAX,>"PV%&1'-[+K@[3
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
M7DZYAIU7O)NSVAW$3?N0C:C[UA/).^I2H##M3+;)U!>[1I\?=1 &TP:8,)"
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
M1JY':M('[ (T6!>N"NYGYAV>7I&S1+?$]5]DRTMUQ7TN2U%"#W;FI-,>KDA
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
M"S+$8":2!O54UYCJPR*.37PC%8A)*/D41?X+#H(6%!R[3K23>"1%_BUVGW!
M=X16LUL$9!)J;J-P_8C(]A(]M9D;U>[34$"WL58R*#I.@C7U6+8XX7LO-6L3
M'*Y1Z%$UH(O,I]0E;IB@5D1IPIV$9NZ:7+@[G+AMYGVU^R047+DDI"R-[Q#A
MV+2@H@YB&EDDD?<[CS0SWYDZSMPXOPO<5N:Q$MI$.R4+ CRZKZUF4:7W1.M#
MF!#72_*X'E,7'J"EGY=/ 5YGX2XZJXN&%U'<RAYH.]!T=O4%G3;K]C;UH?LT
M\R[=T?9L?7:#(F[1*I"O#W$:.M&:H83\CL0)P4PDN:<8_2NEV%P]MW,D:A"@
M1';NH@![[0Q9)30H]#VV=<(5L":/8K4F2@0$3D2K-5E*:)"B6ZTI;( '(M+5
MFC@9(#"1H]:4J8"!B"*UIDP&:-*(4FMJ3@$ B2YU6.=EH":,T[2FIMI]\OA%
M:SI$0$#$,EI3) ,$+:[17F3-,*>.<718PFLP9A3O:$UVM^$FCWUTL[).@$",
M@[2?JWIPP<1$VA.J  ;%[[Y$B8L-\KST@$WN>;<G2PAE<GHHEP.\Q:%+]G<I
M\39TK#N"/;0(@CRE^SHB13X2BGE7@OQ^V-!U\)ESKV5&Y!BH3,[9 K]3-_-K
MC%9I<(N?44]3T62@R;ER1Z)KMN#?HS@-JMG/?<W(Y@'@Q O;TZP&!XE"@I\I
M_UEF<YP0?F\C7B2'MKUS0',X.!RB!FU(#=J;< P-T1P,5,29?5V*K;;GB.D
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
M:+%E+[;^FX?!EJO3FAVR))V&3A!L#!-Y-=$#3FK+$\62"4K0#D(J@-%<JI,
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
M$?J?4I>X="G0-J,$E;!+X/_3J0S K_55AK"65I]5Z$L/NPBLL,;6<[#(&HF
ML :*D&,?"4)",\Z@W\3VG:;&-4GJA*@ARNE<+.^O_D$7'SH (FQI>]C@W2-=
MK7__G"_W54M:KP^$C4A;NPXE=IKI&MNGF8>_V&2V67_1^HO67[3^HO47VXNI
MY"W0C:GB+NA'UDV!0-C&#?U)4Q(G]"\?-BYU,MT=3ES=NS6"EP X%.<(QKJ*
MO6":/L78QR[9/[@!6JX>$J9W<F=1T7Y.[J*"# B+8 FI+^Z6?J3&>1C3E8 B
MI?08=3H"<1D;-:\B+PVZAO :'S8H6-V1*-XA+TECN:LH:0AA8]%7IH.#**%F
M" X_;A#]\OTY7:JUF=W<!X1U9L[W9L*L8VX=<^N86\?<.N;6,>]JVAR],F5M
M>4E#"*:-25UY"1D3^L57+@FITQ[?(<*1T_2-!6_I%) <"LHI8%D'N9<[-717
M\W&0)O@9/2 O)?PNR-6K%Z14.-=4'2^B[2Y-^)O6R]6I3,_W8@ *%WO0$>?D
MI _*" CVB1@_YBPHG?SF;D!<_!'F3K.^E/D"0>A7VUT0[1'BCN&2XR+T=#7:
M0]B"=76X+"@%28-8.L=AXD>"7+II[OEWGU&RB7Q%4$>O(P2+TT0,)K0-(8^[
MAZ_LS.*>_B/GO:#1J'S^V!.?!738&(Z-X=@8CHWAV!B.C>&,;'N>6-A->12*
M]A!L3\.4"04U4V9',*.+G?CXS!FB"SGWAECA>=V<>\%;@QSH.Q;>\9TR6*>
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
M@R#"TDYS$^[2Y)&.J%@'Y<WG='U!3@54D2B7/U4'(&M?DYHU20?2JG>*7_$
M:1[F^42BEV1S3W50N?X90X&P$C:KIDJ0C21"E"XST:,T3(P%*NH(P2_K)D,1
M50.(+29)263TKU-QT:_^>>^&:]%F=?+;'/)63E">E*-"+:_].O'&(I1_A9-3
M:^=GRI5M*LX6%OP^Y?(N$7W!SA-,)V.H^ZIF:/7W*=?:)H96,;6Y?Z(UM.E0
MP.8%V+P FQ?0=UZ )"_[$A'\S&,8-V%,X;+Q>#@^7JXNHNTV"A^2R/O][R@X
M/<8P[P[!2-9X5MF(IL$?U!9ADV/!<6)H%$<HNA*2]X=_F-^"*'!'B$?T/U&V
M+,/CWY(E3]5A/@?Z*BK R:@XN:R^ILO*/G%=*[VK6[SRMS]UJ1O.?3M!AG U
MO,NSQ(;DPCL3KB] \2(YM#4],_Z@>V9,FQV&=DIC.VY2[F./EOO&]._(7U.=
MO40Q7H=-I\JRQG,Z4);1 &%QKN.F/$>1-P=RBJ)6+K54(/EP!5K(7\0YIL<U
M2AEDU^H)X:2D2?6J!H\&41#D]B6B^U*!:U-9PGI+"(Z=B5R$1$"0P\%^.-\?
M/OX=4_.(>)O]+7I&@:I&M6;G.1WHZ]($2GAE@ZV.M;HNM1D,(-N7F=H*Y:M'
M+R@Q<]<DYN2=*==,90\(>UHKS16*440A5*%],!;:!T@;WB!"^P!=:!^-A?9Q
M$J')ZEL/(;2/]KS1UAJQYXWVO!'2>6/O1R59;?G& Y*B&80MVO18I,#]+1R&
M]'?X 6/G'NRP ][AQL6&93C%-V$OU^$^ZA]MY ,[.'16K-$S;[2=XYVY ^OR
M)S$R&OQE>(^\E!"J$.Q^:_PUC)YB1)[9*LTM.OIS%'I4,;B2J$Y%>AW!1KN&
M/W(90"5LJ,R&RF86*IN+ S]FJ&P !W[JG:O)J>I]E.D\LH$8)E2:/K:.V?J"
MHKGW*TXV-;+C*MUQE4L'RYO#,MA=>A@+@E<ZIK[VRSUP?G%;.B5DWJ5T[Z >
M2^.BV?MP$#QLP'K9S,"WKIH/*$FRK6$DY:P,""''>7[J66'A6U=0EE+.:O?=
MA%Z0^JP<<U%@:AQ]58T/(5E[?NJKXNC@UVX&HN6:RN1JM4)>LEQ]CIZSR7D3
M7D<$X75X]>KQ".CI>1\ A""\G3:@"D-@\83' /S-[(7'"T PXA#FQ/*OCW\:
MAOY_K%?"XP"=8B#G"/KP6VFTV<3Z;9%X6R3>)F?8Y(QO+CFCOF-\(G3#NZ"[
M88:I2&)-G2"$R/3DV$0).)=K$031"WOFE-H>EU'ZE*S2H$Y$@_C,8$ (+&E*
MTXPP>,*MX?H%):93L=P%0M"E[40LTP'/KC:UHVNW@^5VM+69K<UL;69K,UN;
M&:C-_#5\PD& _%*@0[U)JSK,QU9643%X,/>.+J5T)'>-EJM\TSSB(0JV-G2
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
M)%U0KDAR*0R9''B/GJ/@&8?K)54FEP5SJF/+3P)U>T)('E1IS^%(4)>@(<3
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
M(M>.FCL6VX[&(4M4+'?)7,-1.&69O*;<,LG!U*=CSAA_AVOG665G?<??(W;
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
ME_0QKGU+(&V,/08KE2S$86E+S+%8+;"VLV8O"2[GY^D-BK,/0UZAD*S'ZA_
M*/1#[K_*JBML-8S"J]5E;SO@U'+"<*6W"P/<S&</<[(XO[G^/%M>+VZ[OL6L
MO^-B4FF&EE-F_"V"&\OW8HU1BU]5[9'C5JVJ9=>53QHCQJEZF4U=5C[A, PN
M=:=P=E'Y?O[+_/;K7+[V'G2+M#9<:[H@CU@5A:OW2D<1MTIBM[YI5<%DF.CM
M5.W\ P-R-_O;[/QFCF"8S93-K;\;O XZZ84\@!75KGPG5.R".(Q5)>_T\4R_
M V]GJJ9;W\EY#^-0O&G DW8-OEMUD*A^XPY_L):H(]D41AR$95(:W 8>?/_7
M[,;OT!%T$6RW;KSE6:%]!PZ8V'J;^K8\HJI[((\P!76+AZ32YH@C4$5J[=/!
MQ9<OUTO(2/$P(1>+V^7U[>?Y[<4UF^-!OHK/7V?WL]OE?)YM'_TPY'KM(0[L
MWS>!Y[#A%+)5Q*^UQ9DJ.B#W[7IEBQ5$9*T1>[:"T+J._?#S['[^\^+F<G[_
M\">>=V7YM]2'3S,J]XS0@<\UKZS4<-H,N;_*%#L&X'P;Q+XI%54;:CE!$FTL
M)BJ9DKWON0S7V9P\^<C:QYL@=/])G?]&'L1'+I3^=$1JT7T<Q>P/R-3!YS?L
M\[_\,/GSCS]-/IQ]3ZR8_$_+WT.%VX]G$\*<[P-Y=_3)&>/*NOSPZ8?)3S]V
ME76H_M++'\VN?6YH.@ZO*6=Y=Y;+%I,7ULYE*N5L+MLZ4NF('(#4E2]L<=;V
M0@Q2#837?I>0L2"0[WCJ^L067(;=N-]O]Y[%HIRG"X0*HB'=4#]RGZC8XH"*
M ;<T7JR6UHM\O[0A%>P1H&>6HQW_)B0PQX:F)BT>\*3\1!YP8N<Y$B\P4%!9
M/V3N:6RY/G7F5NBSL2[*B7M)5Z[MRM902AV1!X:Z\OE8J.^%V/T;"&_"XQU!
M<Y@Y90^ZIBQ(RH.\RZN?L'D_(7,QE>PR/XG"79L^+4(SBUBG#H%KNTAY'P(_
MI,F5J]X60@Q9%<*V/7$X)3U</J<.U$20V6ED6M4>$76@3Y[DGX@@2F9Q'+J/
M^Y@7*XP#<F>)EP/5X\@PA[(SWU'&5(5NR!%657')F6YI'\3HJRRZP=/?4D:#
M'PEWHWZ. =]X%&1Q'!DGFT5B=_2:;X[6;]\>M48>S35J2DXI\DT1QVZ=Q$;V
MUB?IAGJR>_[.3;]!<IXF5%\<-O15K57L,C9'+E&XTIMS[<?DTF5BF_7K_%%0
MA7/WMU+HU ;)S')"*)R"K<@K6\?WI';M8J(?Q1_IVO5AZT)%_5Z3J,/F-#-2
M3+?U62?EK9$#68V:Q>SHI4T1PU>=Q"WSM62$R6\IZ?\SZ.$"?R]TQ7[?LJ06
M3&B1"AY2N[+_.?(S.3U*R#V]A7F*YQ&-R2".D#;::.]9B\=G UWR'T+CSS18
MA]9NX]J6E^:]&>Y08H!?7/ <\N3U(HCBQ0I2O?.=!1H^N3:-'@)/OL:NZ( <
MZNJ5+:Y-9*T1 Y>"T/K7L1^69'%%9#C59TF3,(BBNS!822\&%%L@]\L2=0JU
M30Y?(_:\,BG;[L;F: ZS\6I2J<_WBX<'\F5V__GZ=F#$!VR8O^RHS\:RFA5<
M17/D456GZ#'6E[5%'&^U(NOZZ?P_[N:W#X/B^P/U/)AK^<X7*_R=PINB1$W9
M@6A5!^1^6J]LX=*$M#5B7U406OO<VO*2,ZMM2GK0O8:(LI]^PS2]9)-[+^ U
MBZM]MZX/<O=54KFX4U#1 ;$3J\FMOQ84U+DK.P?ZA H&0^T*#*'SD"L+ZM/0
M\IB^,V?K^BZ,J;'[1*M#N+X7\B!65+NP*JGN@CB05277W];B]+E76P4.PP;S
M<'H/F;H37CO<!GZ0)OBKCN2*YLA#N$[10GY.25O$05LKLJ[7+L1SF(T5KK,2
M/A\Z*JE:N]_0L99^X$\STBD8#7_+:[8-PMC])Z^^LE@=EVN6F*JV$_)X55.Z
M\/RML@?BV%447/NI3XX\W)9P,P;$*JTX.D3FZ'2;1A;X)>V0.[!4M=),T&DC
MQ&XJE]58IN>4\D"CBW$%,XHD)3G\:)+)='A'6V>/0LNQA-VI>J6!=V@VAM K
MD;9E4M"K^\47LKB;WXM4XX->G6-+-!K5; >>MD+ND!*UBE?D"DT0.Z),TK8C
MP!%=L_C_2>CETS6\;JT: 4RK=WV[G-_/'Y8D.30:-+J>F&*P?2@P1)YHM[PE
M^BB3JE>,M)-FJ*--+JV^2_["'!*R!B:I<P>_+ VC67JOS/7W;)1+AKO C\[I
M*@AI+BOV_"4.K2!T7-\*7Z]CNN5YLN%&6L#/T-((EEJT2X[H8Z1S<Y]>_.Z$
M'>J8[5[KEA?0WX%T[PDX!SD(2 X2DD<N8B[A-$\S71"*I%(-LUD_ C,G1G1S
M55J'6=>BMI58A9S/KQ;W\\ID[KV/2\P0R3SPG/ITY<9EEE-ZX-.4TBC&$2WS
MG(X/C<B@QWT];=K7]4@7&&F:W$$S6285-"46D=BOMA/RH%!3NG"ILK('8E=7
M%%S[(KT@GQLX.[T7H/#XI1^%,57D40K9^E[(8U91[<J*/*.)6E7)=;TXI8^D
M"$]'VE7!T? SU&9S$_P!VB PQQ>07;EJ#?TAU^OFE;WN9Y*@N,;N3#^H^950
M)N\2VN^'/TN^I7'M*?)Q&^204ZI2'F@*#1##2[F<NG[(J"43\F'PP[PVUQUJ
M4X<6AK69R\YR^EH@=>5K9!6$9+</=XQ_!'?7;,NS(4DQ;$"SQJXMWD:XWC[.
M9S/>T5#D AH0&]/TS7<TY'F0:G8**YHC1\PZ1?/@*6N+&$=K1=9^2#J[O[V^
M_?Q [N;WA->\2G?O?AIR]^Y8WW,(,T7;I&U'YK$%%:O<E3<<D:\6Y=5/N@9
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
M?K._M.%XW-74-> C5S5XT_<7-[8NZ<M# ,]> C^ZN;F0W_BM:HS4X]24S&X
M2UMBOPE<+[B!&\$)$Y)QF1#&I^>KP=UI6JX>GI&@=M.MJCW2^%16M6)4&,4^
M6KW,ID8'#-MD_6EK<"R,&+SR';=I[B]W[;LKU[;8WY8HM<,6_M-=X+F0&3+[
MHPRI6M)#&K'&3)4-NFV((8QX<SIIQ\B!$9EEC,A=0G_(RLX@PFN&!K/'B-\X
MDJ"(O#72V%!4LU":N;PI0K]6E5C7:VOH#U1:N2-E<87E09I4F)K(K.R /#CK
ME2VIKUC2&G&(*@AMT'');RGU0>O 6)$;+59'JK\>!;#$8,J=D?MV,R,4RL(H
M]43L\PT5T"X0 VP@]?"!T41$PBOY+?GOX,NOOFUQ)_(R#'U6>1'X$5/1X7*H
M!7Y-%^3AKJ)PL6B&O#WBT%82N\4CB0-Q?*'<J>Y9 -MY+@-&\%404K9XO=B'
M(?69IH?$\9 .@O_3$R]6U,*[#3WDL=_:5'E@T":&&#7:ZZ0;5@EGDK(F>=[\
MNG.>.SK(&=YP=FJX^,!L0%3Z&M'%:A[%[M:*3[9ZI8V0XT>Y4GE0*+9 '.D2
M076]D)&#,3$CB&]2T(W"-"4X\+,#*/;%_C/_Q]Y]LCPX/E*<RROV11Z8C4QP
M_-J@MB/B,&XF?ZMW!ORY,_R18X0OS/LSR)!3?LL-?[&\/4.T*]>W?-NUO&L?
MGD]N#]K*9BJ*?9%'?",3%*;M*AT11WPS^;5GE8P+X6Q@E,L8D1PG?+'?DVDR
M8[@'VH.^J;<IP[E'CT9LG>%D#RZ3G<SH\/W,\X)G2&/!U@R7P?XQ7NV]M%4E
M9AAF@1Q:NC!H\<F_.?J(@:H3-?5O9&;"0$Y@)D[N"77*BQQ:34@F%%D%(4G%
MRMKB0S]4]KX+@R<W@I1O8+V+D#IN3&Z"*!ITI73MP_6W(%0\X:QHCAS"ZA0M
MIGPK;XL86FI%UL]ZEA#&%][=ZSQD8&YW;.X&,ZE%>.E&NR"RO,7J)O#7-^X3
M=68,-^+HVH>:/JZ_OO9CIJH+2,:_:')KH1M.V.&@._,6D,0\&\P@U*&VVK&<
MR41@TI)(!4LXD&O*!2-"@ G)9",'X;(OT<$?<FNOB <6]KB%+<YT0#S]' 3.
ML^MY; Y8;HHZF&Q$ #GZ-3=&'M34>R/&*@TE=(,B9<775R, EJ%,XQY,,SA<
ML-7:CH;Q*R3=BYDA8.=\![BF!A8-NB.'BJ:&*+Q*4.R+&"8:J]!B>X SFO \
MCS$/B(P9/HSHW2[<(#3E,B RW%"&3?2&,ND49P[5/9#'OX*Z^9"O:(XXRE6D
MUG5@07M"!'4\$=RMSM:PVYHUR='5XK8Q$>2AK&>4!FGSQQ/PFHKHG[5P=@1^
MCT."_&?&D:0L\0##0+8)J1VL?7?@2YKW-*(LI#:73"HOX',-N#O#ZZ73\"%8
MQ<]62%7Q0X\6>AAI8:*C1._-":$&E3;ZM$@2S[E.2([O)"G%(5B3E#>^=<2P
M-N-6<@ZLB3UPS9)#";)\D3!1NI=OQ]A,2O>)\JIAE1=4]"@AAYX6YBED_FE.
M!C'LM-%&.S=(7<$_+/@RB'%XK3]A'#M?ZV\W<*V_\WWD^FS9QTSQZ/KYQS<2
MZU5V0(X5]<H6'JY+6R..? 6AM=]T)J1)GC:ZV4,?!K!SM#'4Z52]J"5MCCQN
MZQ0MK<TYGD5"K<CZEY;2\I3X9OE=*QT/7)/SN)2Y6HS6]T(>JHIJYR.VI@OB
MP%657->53XO6XXOCWFRP8S:(@,. 07U+GW.I;\+ 9W_:-/=N1BW*-<@@#WM=
MP^1QH"D-Q,"@K8INE#"&A82<!9;X0*-W^\"S#C_V7HGE!#M(.GY(DTIV!?X&
MT_X^I E:<VE33Q/H+?EC%$E:Q#9TD$)&:]-DZ7UUB&!/M]]*)VWT"(A#5ZXX
M:2/6D^5ZP*#G_/L#J1Y3\H%,";:4<US/NHG$22.D,5^M5'X24&R!>(B7"-HV
M1W&1[#"CLV'5(,0B(N+6Y.AJ;ZBS]^AB-=M"U;Q_\HB] A2C_+7#\47ERH@R
M1!)I_)DTV&'X;4</_4AL2#W=L&'D]IX5$N=0J)*-3E;R0("^I,^25EFF!?$=
M/\!>)Y?H)\3*"0\$]A&%%]J>N^I]?!_8H"E_GF,W;Q4A0O+NZ^0Q!OF-RS'<
MH@F=\8Y=RL@C#0G*7])=2)EW\R/:E?2*^5?NU3?,J>M1OCU)S"AOR& 9RK>D
MAQWE3:EG&.5M)O9>E$=S<A+"=[OL5<@N>Q62/8(8$-Z'MN3ED9TJ7\\0(08!
M.7  _-#FRP-\(Y?KN$Z6SU8/TX]3RV;\(KY!$4UCOI8HLV)C"IBA7,\<E=6O
MY-T1+K7;:-%J/^@CF9)9COB0MS^S>5]Z^R0OV/EK[E]UFT6:I)!&B D#%2Z
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
M5AR6X4*#5-NY%4(YS>B.A@]P(^C<BEQ;W6IU9,:'#4J&J8&(2AKC0@HU53H
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
M-NJ(U%6;*Y\- 4J]L,^^FRG1^H):1+(1@;@I1_%^STYY]CS)[L<"AW$H8T.
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
MT,BFMGSCGJONO@SR\H?R[)0N :4VY89&8@H]'E#KRD\Y6U2:7LBJKNHY$H^
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
M+P=O%,JV!"LGU%X&>JB$-@(21N,=QDOE9>(9A.P8%%J2?^K?XZ,H=FKGC6,
MJ/G[^Q@&JNN-H X0'CPJP4']/8%=2(KALM?)JM]+R .X(!^_Z;?:EYLLC__$
MT=<TPKET\8])^^[0V%_>45A??8]/X<<N): XXT"]_4&4260 (H<+::=>+!,%
MP]C Z \ZM-<G9L=KZEQ/[S.Z=S+_33HH7:YU]ZG7D'6KR%RF=?=*:]:Z^>"C
M[%NQ36 #_]SZ(F[;WX&:AU*4V@>6_^AY*D99N*?N)YME?3HW\&+MCC!)+\\@
MM@U&/__52GU.I>-M5AHNPJ1G=KLLX9<>2_AE/I;P2Y<E_#(C2SCEU9@E_.+#
M$HQ)PT6P9@FO>RSA]7PLX767);R>D26<\FK,$E[[L 1CTG 1K%G"FQY+>#,?
M2WC390EO9F0)I[R.MX0D$*F(Y0:C-6&WW)QF%C ;\6$AQJ1D%O)FDH5 C ]\
MS+[AG/\OWL:EB^W=.4F@1N]2X=9"!R?T7DH,027V-/O/UB>/#!0+Q"@A1@5H
M I4IG7[=[5QCQ3G)EX05"H5;PXH3>B\%*U1BF\<*1@DT5IRE?HS4J724*DY1
MN])<W^&G.*497N\",EPX,/G)&XMSP"(XVFK'+B#\0<<Z:&J:^C8*:G^T:=&:
MBP$3*DTM/_R^T)?U^:=QL?AU4I\#P+G[#-;\+C5IZ+#D4 .C\\#8T-0=8VQ4
M *-&&B 7[)PAOIG'XWQP-P=X J$HSZ[7Y3P\YT]#QAPN]6-T"DB$><5FY)>0
M4GDU_%\G^]#A++TDW!OYP:R!W4!^7@K"C56+]7UD(W?_1>PCSS^%2P^^E?H<
M ,O=9["^CSPG#1V&'&K VC[R%&DF[".-7T@L]MMMD!^6V9IT2)]9(:DE8]#.
M_4,M>D!1P9FJ#=PN["<&T/+=R>S@[N ]YX;BPN>*&\30"\Y5P0GWN6N9*F3E
MP#S(I31!#2A6.%*SR;($"E( <<*5Q$;>I#+/GY5LR1U[TN4Z[7^9"J#"&XZ7
M;MS>H-KNRR O7XSBYKA*G00=V!/9[XE[\2&(\]Z"QJX8>"EKF?;'L+*\]5)_
M"2N>OA+ +(*]+%_ NFC_LU04EG6 E!%94BJ(DD&,#@N#BMV*5G!TEJOI?-4]
MHS7X=W?;1 6I"U]7NQ1L_I63%[,[[!37]ZK8QIS-]XH?<%Y@FYAL1=OB883+
MV,O\[G4CHT_]1:"MERV,)NF+QV3[;ANGLT _W+>CLRQ^KA]F=AOX[Z5^X; S
M\#-8B9QTD[Y@V!FJ =_>H2:_-AU&)_MWRY^C'O="/$BEWKQ'Q\<P]%(!WV_T
M?# W+W%9L.^@UJ3\^J@V\]$(9^LLW]+KI2*+9Y_&9;$,PC)^CLN#]02U 0P
MQ2)_'\-L"ILN=8!8XU$)UI/<I!2WVR-S F2^4N;02C ')^?M+*-8XVTV O0<
MXJ__M2?"W*1%F;-*:H64,F'G*=)AI('BD(\/8.19P@%T 6*/%_&-['TM,^LY
M4P#ZISC>:. @#C6A[D+U.(<5\5Q[Y0;G#YL@-9IYYY^U2UU1+7Q (RNN0;XN
M<46VH1YO*[9!86:XHD/ZE'4,J1%"0B<AI 6ZO?\*-1_PQR>X2#]"\IDT2Z,,
MN]7NC\<7ZUE,^*1N7(P1#+Y(7V.*GHS!9&O9(@&3,"L4:1PP]:I^53USW'Q,
M6?HBIL^\S+ T!]#S_,&,'-L:X <ZI/E6RU@$JTF@FH;DV_E&*RL+!7-EBYOT
MEOGSSM>I,_)S0"&''\*-5]6D#1U=7*I@>GR9 $?!-XRPDM4<:!%>?'DX?S_P
M:-BG] %8/\+-)G4T%O)DH)-2WQHQ,P*!I[EOEQ,PXZG--T6QQY$MATI!XU)1
MJDNE1I"FC< EHD6GG*,M7LHL8PEO*&8$+)52'"T\.^)ORC[4-?'" %"K]O<Q
MZM15I]2A/PWK1QD&7F&F;\]^JXI"!\)/>&)G:Q'U$M;42WAF7@+92#40)MKG
M-*Y,1^ GD8X?JIV7SE5 O:C5OVRHGRKXY -<CIO6ZSCS&\;>0F)GY($N [X^
MA)L=9I/V);J$8U4PNJ ANQC!XO[-&PL2K^CQ@.1V@E_$&%X@SC*2>$:,:;(.
M!.FQNK>H+4(0B[/N]3+M'#Y-593]\@.43<7!"U .Y^_'Z@ Q0#F0N1_KBP,O
MV-\"= R'HLX40BM[F%*K/MA%?.'F.F;U'K4]I4EODAC=>0XD#'1=<:_\Z4&G
M(50O-M@T2@EC@>!A@U%:'\'SD >6WOK)CJ#-+GFC5UG.FOV$,L8-8G>\T:LU
M^3W^'FQW"5Z@'6E?9EO11?1@+1<GOPMVNQR',5]><@I[A6@G715'99 _83[
M3W.)7SG]C-)8B[/O">R088ABW)X^F.;LQ:\,#L\KC++U8VT9I*4IB\_9L4;S
M+$->BP(J08'(0H&9&&+GP1<@_#U,]NQ6LN5U*<?/.*7,Y6B79VO:-MS$Y)=L
M^\-'89SRY0I1!KYMXG##SF P820[$'2."T1,M"0,DV[) 66/2<SB9*C,^*&#
MD))LCHY[*#)62;Y#L28C!$6!Z=E0ALCB+,8E^MQD:!,4*,U*="!K)IT:Q3HF
MXQ8X?XY#SKBTMH9Y3#8^<8!2'.*BH+50R)!/ 5DTRK@D:B<_$4%#C(GN*8 P
M.8H@8=^'_I]+RS07X3PYT(_ UYM*G<4E+MK.=FE\5:>703P<0@%:_547<J#,
M@ [^?G@"PSZE5W] Q=P/KV"$KB:_@5U!75[?D0N/I!!9NK9LB16/4^ZRG'',
M?(>6]?.XG<W$@V&95-"$_(/"?9[S);FQ#\XI6<)*&3,T)OCZE]OT/]-/Z?N'
M]#_(/_=_06Q)+1>HX7+\Y?;G__SUT\^OW_^%2-!(Z" _$F8)SVLB"^4W2S%9
MLH.<C! _8[0E8FZ*!6.JW,2D*2:@'AQ>PF)J;5HUEE0W]S"=KZ"*^U_>PJ5:
M_+S,%5+_4SE8$?N9>;DKX #=C(6FXTW*X^Y7WN?*E36KO;"T1/T57;,M,-EU
MB4TH63?87E:L=!>S;#CX%HUEPOQE5YLEA\E')$R&9?UNN..*P_KT(4.^CT]A
MMMZP)G& "17^=&"]VO!2KC=\5W-W@>6&&XD-JS2Z_K[#5-2'C/Y*PE<[)8>'
MDP>*1KX^A)'LKX&T 6*1-Q5,?"Z0A2 X)1K I]&1!;H39=?,'P8;0>LP+_;L
MM^Z<E4Z20!'!I<+-NB1J>@ MWZG8;AV/*PH$]/>&? T%*% R# -[7QC0: [9
M&#4$K0VIHRWTZ(H.ZV;RT-@$K8[[C[0<1S!LRMM'P'TM8.LB=U227_ O[KDN
M/VP-& 'BDV,6Z93C8[QN/188T'<>$*VG@A:\[NXX'_#6E,-H4E?[X6U"Z)W
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
MD.Q@ENLD^[:,4W8OABY*TF^Y$T.S[:M,^O1IR<K<+8E<RT3DQ,9XY/43%^P
M130 FFDZ3AYY 8BO8%0R*3CQ@1 7;[2SZH!?*N*(E2EDX/3Q2-RCSW-:,?$F
M784AJUW;6Z-?LRM0'!BC -F9T>D'T+Y&L3_59=$AYBM&X401#ZSN<R &E@I
M@[)\=J?N*+4J%5>KX^RL7B5\M\V?]IJ5Q2N9-V_OIZ3@6+MQ)?";J=!M_3;'
MNR".WHL7X^G>*"TPV:<Q]IF7HF__FH/-#A.&**D;)W1&FA5V#!+(/)[HD+>)
M,0]]X0]/&A-$$.:C\SP&=N,(%/K<I,]D Y?E\0 GH]EG=EC2(G(W9$@=9H4,
M;7R;!P")"AQ?PJ3HU5@'4(9;[8UN@\.HR,"QW^P,6"&Z7DQ =)J5(:MXMQ<-
M$)2L'%@\X_PQ&[IFFU9!-1[:M4OJV[;S/8&\8UQRB)[.N\[1PA4*Z#7RDWYS
MLW,5^Y/2:'&$$J Q;O*;;(L?@N^#_$^YS^PF=XO(??YGW6%6T[F-;QO^9TT%
MSG)E4G0^%BKI8%.6*\51>4L@KCHC^TA_5J]"([H#-=:QBJB/C@?TA9Y]-T:4
MT:<Q&RP>Z.QXG;4^+T8)^ZNTE#E.S7.IFJ$$76.?<X5\:4X#6&Y,%4L4!7^U
MUXGS?D 1<K#HW2[-2:=9N34JWL=.[&J\ZC%C)VEPORP+_$1_9@5DCQD[Q]\*
M;I:/A^43SI[R8+>)PR!9,OJT:;9>AN+)SW&Y;]9X &I#7C^)1I:;'08 VK9?
M/8S%B?N*/!+(@QX/Z#>)//HHR%-GJGJ-U]PR6>2EM$22GTZ71_*K?]Q7NI09
M:ZDFU]<6J EKB4A-K;,A0)/0XW?LU&W,4M/UX?3F)3<>F9'6FG!];2'/RSX1
MZWFI:@AU7O;R:V9> BC]]NEZU5WM36X ="ZJA6G4=*O_"G#6=3 YNG(;&<HQ
MYJV*.+@-PG@=AZV32M4&Z+SJ%*G"MK,& &=7-Y^C3WK(B$@,"6\+6?V7,N!@
MMZ@@!W1FNU*TZ3U@&RV ]N9,9*,[N^J_M$ZMXX7C-L^B?5A^R>]Q_AR';=7
M.YH!-;(^P:H5I*T-P$G=R^KXQ%4V*,M7%>/ZV;()1HI5&@D^"N66K:LM_/FH
M%O%D4IXWA#TS._@U.CW][]P$*YV;M],V0"=FITCR%J[1 .!$[.9S_&+-1C/H
M8I,IO<8%?0PD2"IKJ6XCJ L;:?4".L4&BEW[K?U=H&=7#)!@?/6-'6&=/<\H
MN;/TX==2O %;9B@F+G"!R!S%3UD>_TE<SZ! ,G,5N/*+*XP_Q]D6#E35$+B0
M!?9]4^<CX20MNM>3TS9 C;U3)'D]:30 O)ZT\SEV#HK1O(9LDBQ]2N)G\EM6
MDJ-0'VP:#=V,(0MTDKM6_(10SF": $W1N>BCK9M07#*2O.!,H3RT][C8?";S
M>I_G1%^=U\U;F@&UQC[!Y%7GM W V=[+ZK3S3SX/D^-,#5IO;;N<D'NZM-)W
MOW89\5H?$RQ"I,JIV=4!^B3M%;8Q796M(4_<?J:G7@Q1D_!3==&BR'QHFN25
MUX.C0B'M!#_R,RZO-H\?D_;38T43H,;6)5#M2YW\'7HL0<6N@:K(9&AT]1_O
M%NCCQZN%VVV_::ED461)_N__/I+^2/Y'?EG]2O3]?_\#4$L#!!0    ( "YS
MCE3<U1)+^HX  %+U"P 5    9'-G>"TR,#(R,#$S,5]P<F4N>&UL[+U;<^,Z
MEB;Z?B+.?]#L>3C=$:W:ON3%KI@Z$[+3SO*T,^6QG7M/GY<*FH0DU*9(;9!T
MVO7K#\"+1(H$")"@<!&KJRME"03QK6_ALA86%O['_WQ;^Y-7@"(8!G_[Y?0O
M)[],0."&'@R6?_LEB:9.Y$+XR__\?__O_^M__+?I]/]</=Y/O-!-UB"()RX"
M3@R\R4\8KR;/X6;C!)-O "'H^Y,K!+TEF$PN__+I+Q>GIY=_.3O]]/GC9#K-
M:[IR(OQD&$S2*L_^<KK]Y3JO-0S^.OGPZ^F'7\].SLXF'__Z\=-?SR\G#]^V
M!;_A5BY@:TD?!G_\E?S/"W[E!,,-HK^^1?!OOZSB>//77W_]^?/G7WZ>_R5$
M2_S\R>FO_^?;_9.[ FMG"H,H=@(7_#+!Y?\:I5_>AZX3I[(J/?[V@ORB@O-?
MM^^BEB!_38MB4_+5]/1L>G[ZE[?(^R5O(OF9XR5%<?(K9)0O8<G*U^K/97!Z
M>7GY:_KK+UAZD\G_0*$/'L%BDG[WU_A] _[V2P37&Y_4E7ZW0F#QMU^\:/DV
M)0R<G&9(_ON77%&*?V>!=Q/$,'Z_"Q8A6J=R_&5"ZO_Q>%=IBP<BUT$QB/[B
MANM?28E?^2I+P7&)[=>^Z)YBK*:D)==A$(4^](C67CD^D?+3"H XXL;&4Y56
MR!X<A']>@1BZCB\3YW[%JE%OOXSFB_D&H%3->@*FU:D3UNMPO4%@!8((OH([
M/"&L@3S0C95KCEZFQ@N^2B?)/*UPXU:A[^$5P\V?"1Y^Y8FBJ6Z=L%\[T>K6
M#W_*9']7Y0&1?H&1ZX=1@L 7W&8$-V0 FB^ND@@&(.*'UUJ/$DQX90FQ:!\0
MB+"0!1<9[%J4X)FYN"]$4&SBH3VN!,&M ]%OCI^ ;\ A?Z?*WP$*I1XEF)Z1
MXV'9NF&"V_ (7 !?G1>??Y+DJ$D)KCF>>-"N%5UHJE>A!,E=\(KU(T3\,U3C
MLTK:_H!"O#",WXF1@[OOAFAZ!QC-U2AB YN?2XCU819%(K81JPHE2+Z&H?<3
M^GX'!+M'%<TD+DJ =P^=%^CC&:%3[VZJ1 F:^S!8/@.T_@)>NO2-ZN-J$.!I
MK!,'Q8-*6HTMEC6,T[D7+VMC&"Q!X&(UP(/,U\1!3A"#3J XZU6".35-KIT-
MC)TN_;[ZN!($-PX*L$BC!X#2UG1 4:]"#1=QZ/Z1NH^)[8P-YW1Q_N [G9;'
MS-H4S93$"?#LO'7J196G%8T/08P<-\[]>D1=4@<M_CQ_\>$R<W?A7ET4O ZC
M3NN!KB]2MZZ^QMUFV7U-O7U<3;]+-K@\&9\=O_!;='+D\]>H!B=8DB8!KR>X
MQFH4,?<2@3\3W)J;UVZ&1*T&73P[#Z$/W6X+669MNN![[FJ$,^I2[L7J#*JI
M$GT\6IUA,6O3R;O5&6%+?5IXNCJ#HU6DC>>H,S)695IXD3HCHU6DU*/4&<U^
M!9IXEWJ,\[2J%/II.J.I/J[<?]$91U,E6O@R.B.B5:2;7Z,[9>UUJO9Q]!C"
M:W48Y._H#+O?ZY3[/OJMLO8JT=$/TKVO\M6KC4^D.U!&9;K8W5] [$"!."^^
MRI1;WMUA-=:B' ^6L@_7,'#0^T."W!5^UP."+ICY?AZG?1NB(AX)1.FC"'AR
MQ-#WY89+KV-$Y"&:HERR1?OVS<P?$5@D_CU\!9*ZHLB+E$OE 86W9,!_!%'B
M5Z.?9?7(]A?HXR_LCIE=G4X($7S%\B>1S5&,TG,;T2S>EI4N <[7Z2,AO* -
M\(+V+CB$AG"^3"N/,_FZY%OM+A'1%^@D!>FHM42)1^]7&&53_36>TV!\'Y+)
M7CKZUA=IL1_1'3:U)BUPS3POG:T=OV3_R0/+KEZ;/9FF[[H+0?@-6NS>=,=+
MK4D+7)(U7*QZI3M8W4'6:M!D#ZN/84*M2WF\='=4C;4HW)7K@:3ZO$(,9&\F
M#"H'@H-E^M/-&]FTZ;'^$WV!0BE\<^($I?UDOY%2NF.7E^@;7]]=#F+5*]^M
M[@ZTL1;E>(CXPR#])IHG,4G*07*MR('95KD6N_7=H5)KT@(7&623;,-GOB"[
M0"[N4E^@G\3 &TX&G=ZJ6WR#Y 5SYS?I)I?G$'?JFRB&ZRQQ0%/!WDL$R>_7
M38;89DK6:68"LBGBW057ON/^\>2N\&NC;Z$'_-L0W3CNZBN9^X91NFY-T$V2
M3\EZ[:!WLG BW\W<&+["^'T0D;6]2S?99,TL3[IX&,Z_O'D#R(51/T>NQ'?K
M)KLMU]_#X!5$9*3I-T?V>)>VLBF%>:4M_A' .#I,%^1[M;:2>\0T(^@65!]0
M<%QOUE9NURA*R#>'D17U;:KC4[./9(/H"N!N4/Z)K*^!=_6.__A?"8*1A[GN
M%\P@Z;UZR Q_S!>'C\ -7P%ZQ]\G")&F#R4O\7>JEE79-_<%+ !*HWGRGW.'
M?R#'(RWEK:KEM=V\+0C&:^?2S[<H7!,-(*/NMN@L)DG7$I+0YQ%;,G)$*+4A
MJJ6Z_4@&G&L'H7<\YOQTD(=7D!N8Q5!]D28Z\;>IE@_A.'!Q7\@]+57+N.@G
M[[CGA"XD7_T.X]4/O&)"&$" J]BJ@!P)#M$>U3*6OFW*6;-!IT:V$5S%F/T(
M7D&0@%*YOEOKAVJ805(_/;0T3TV4TMFAI72F5DKE TF5#=;2]SW#FGAK5XX_
MM703E^RM!LOMU"('?4O=RK$/$<_&5;6.I]^*K[;SP7:3/1W^95DR@[1"FY-U
MV^_R2?3J_2L(E\C9K,CYEN(&BOGB.HEBO,1!/>0H\^T:RR__\(Q?,;2PFEZE
MC61(]!8Y%.1EB[%F:N5*2.R5VDA*]I:T\"MTR!369X!NKD@85=KP EI3,\K/
M7V;-", RM8*=%^#_TBJ/IKI\A"I5D3MZ+LD=/:>?4HE5W]"_J<\ 16#X]I9?
M(Z'1Q.=P@$:77I,W>E,Z7'V/7Y*_BE36JJ)\UPB5X("W& 0>\+;?PIB\Y@0W
M]F0RG105E3_B2B=9K9-NV?]2F(2=T*VT)3T,&Z*Z;"-<7UI7!-R_+,/77ST
MR758IW]^(!^GV<=4K/C/?Q0MW3^!7U3L$W'_[1=ZL5^';N$])M_/9#A[@]%>
MPQI*_./3^>>+C_@_GR\_G7W\=';QX;S4S++&S%"UR0YRB^KQQYH252G*2_RZ
M28\<3]T5]+>:L4#AFB6T_*4A?_M#Y 'TMU].?YDD$6Y5N,GFBP/(/VO8EW#M
MP*!!^.6?M9$\KU2K/+1"&8*$A1.]I-"2:+ITG$W*Q*_ CZ/BFY20Z<EI?BW<
M?\^__L?N3AG?B<BM.61SM:&+M);7AC:>#M,-3<[<68TYC"YS4]YGPJ*V/FVZ
M7YY\#DQW&6=C;Z07U(;@;N35R>>$2.VO!K&>!7(3H-_ ^@4@&NG[Y;3CG).S
M!K*YH*GDNFY(D6_^\0B7JSAZ#HL\)N6@_$8R.9\RG]H^0+49RD663]C"1UF^
MFNP#<0I15K/L!ZHB^7QV<7ZA[US=$4[.\+DA#)<@45?)M3+:\-B1HRK)?/"T
MF8[Y>"V23)&M1L>-FT=L6CFM^.6CITHI/RK#:&T8N.XQTCN\(&T:CEG%M2&9
M=S 6!I-S^\$P;HFF,[@D/VO#72=>FFFEXC*TBSZ")8SB+ IP:S(R>&TL;R/1
M_$#EKI8W"(8(+Q5253J8&LR"(''\1[ )$8O]<C$;26_%)W?=K(;K!X!?Z]T$
M'HGZ99!=*6<CV^T #9N;,R/C%OK@>T)92>\7L8E7+FPYI1]-[,$9P&)F"N+O
MSKJI S<5LX]G#GPYUY^,ZKXDE![A"6BW\K@F*171^W7HT=EF/F4?^>)P<UWX
M;&*_SQT$>+Z*PB  /J7?-Q6SB7IN?#G7%R9R77$4YO\0(9VV^;'+9:M2N3B[
M^'!B+.MB('/J+VVB_DR ^K-CH+X99.&!.;&)^W,![L^/@?MFD 7WDMQO"KF_
MQA_GZ#G\28\$JY6TEO<6B 7K1KK>*D#3)>P<I2>N I>^S&\N;BW_/#@+)3#2
M)U?5]LR$:>WW63%K26?A*\B6Y)%32/9#&,6.___!#=.L;RIL+?'M* OZC?3>
MD<ELAH!#(;S\LTT4M^(J2)7DICLLJ>10G?^P"@.ZRWV_B$WD<F$K"#;2]_8$
M7)+$_/WT[.69'$9J('B_2%4(EUANGXTEF M;0;"1#C=R;Q$,ED_OZY?0;V"W
M\KM-U+8#*W@UTIM6:.[-FYMF)J XS9N*V<0R-[XBC,5(]UD6N%$2$;F:LBE(
MN*F<373S RSX-M)E-DL\& ,O0WL+ R=PH>-OX[2:HDS;'K%*"[I@+13"8&]:
MZ1Q3[6(.JHW->L@FI>B(ME +4\Z*Y#!)'EH2Q4E"^<@JAZ0"I9\%:BYN(?O\
M. O>S0I^NPMB0)+6P5?PQ8F='"\C;*:IN'V\"^ L>)?D8SL0[S=K@)98H;^B
M\&>\(DG\G(#N26\L79'&IQ,LC4O#6>>'69!N2JA<NL )$<6F*_UJ$ZEML H2
MC?2SY>!N(5K?>71.L]\M9)4!K.#52/=:#J](/D=GMBAA(;=,: 6[1CK9\E4E
M()F"_;O  V__">C3[EXYFYCF!U@<(9+D9QM^VS);*]["R'7\_P(.HI\<HA6U
MB6@AC 77IIT*W:&[Q=^PSFSOE;2):1&(!=&FI$RI8LL.PO%172I;E<2IT1O9
M8B +NDWQB<TP-"^%YSM-CM#*[S;1V@ZLH-(L-Q<YY(BN\;2S#!D!@Y52-M'*
M"Z\@URQ?UF^AGV J4 :0[K3>*V<?P3P "XI-\5QER'X'OO^?0?@S> ).% ;
MNXNBA'%@FU+>/LI%@!;42_)W'8CZI[7C^T7J)RKAE5+VT=P.KR!7DM/K4.2N
ML/ZV[3Z4"U6QGQEM,'&B*YB5Y/#*T]3_NI^GOG?V^ET&W3"(0A]Z)$%^?FL6
M!@EV428MN>M/3TCN^FUU^'.YQDE>Y61;Y_")ZR5DQ)XOMG$E#V&4WJTQ>XG2
M"\/V%)_O$;7YO9L2\C<7TJ;#BC#1F-6;#L>P7&;]KB]0R:$ )]6AE@>0>?<9
MJ)[_>*3:-.4QH&AZG\%V6F\;\YKG?^/ZC" N;1)@=Z<ZNP$LWZV@S,S,LOH2
MSN:N3CH_/&TFOAZW&3C1BES>BO^Y^3.!KXZ/04>S.+WY&P;+WQP_H:UTN)[5
M3B_XZ:VK1G?$%JC*S'7)46MROSG T/$H^AVT#A6L9[13C>Y#AC!,&Z:,)M#-
M$;0\CVBG#>*D<BH&"[ %XT1Z2_(.<-2J%?0'JB(ZMT,G!.%:,%(\(+!QH'?S
MM@%!!/ $FHJ@,A%35(/C22MUI"MN;2YJZ:XL=P&YE39$[UAJ%*TH%[&2_E:
MVF2:EF1Q\EB:5C+-W:7[QB3$M:MZ52P+,KC?P\!M7Q'LE[62?WZDVF2G[K,.
M"#< Q>\/OI/=[HQMZ VQM^A#/>L1*Q5"&+#<3-5JA@:,V"'G2^^!$X'T%L+Y
MX@=>]Y!^01LB6,]8J1GBB.4FME:B&E_RAI(,[FOP[+SE8R55+^@/6*D4@G E
MY;M^!>@EC(#*Y<0=YBI80BRT+>*;-]=/2&*"KV'H_83^?GHFD4>M5);.P"7G
MRE:B,"U*837Q7.2:['/,])EI15I)+ .:K&S7R@W'>^B\0!_&$'#N3],?T$X'
M.N\X"6*TP"]8=)<'YYWT%;Z-IFKAJF@^J N,[L@B?7^) Z<%.TL8+4IP.VM2
MHVM!<WDK%4$ J@5[2E5KN,#]WK+3R'S(/JWH@->.F8+TA:U)S#E,U,O;IQ!B
M4"W892*7P!'Y_ [CU742Q1@VXAPL>!ZU3T,ZHY9[4ZHFE@:WA6&?(H@M)?IN
M2ZFW,L-@^0S0^@MXB5OW)YL+6Z@#_#BMVX;:#GKMN]5MS]FG&-T@2]J/B@%2
MN_=0;+H\@E<0)*!50:CE[5,,,:B2MJ.4*T1]6=VJ$ZQ'JK+ZJ"ZA\(!V1PM:
M63M.RE6CMD%;DJ7 +G;U*?L4I M@&S:N2C#;;0W[:&\#9\TF%KE' <;I;1KD
M !DVLO'B"00NG7?&$_;I@2A8R;>X*CI=';I_K$(?(XE(E%_\WK*O27] .X7H
MO*\IB-$*#^7VAA7F8=N]8AI2+L1<\QC0BE#2+J;R9>',\V#6] <'XE7/M;.!
M>(HJR8!F-[0^:)]F=,1LP2XGMIN2=>*3Q$_I20&2* N!%0@B^ JRM?)]&)$5
M\GR!%\UT6U.D%@L52(( +-@8?02Q@^=C[\9! 5Y?126Q8/L+NI"V\FA_L"JR
M3SI$5O74F8Z8):U(-(BPKDN0>UUJGS9P8K3EL%[)H,/V&+<FM#UFGUYT0CS8
MGJF2M)8/J917((:NX_,GN?S(G^1R\F_5=_S[+V/62X.R7BKLYT-DO:QV8O7.
MYX-DO=1BK&[E9$<D+R #LUXJI()7JE4>6J%8FO72M#XCB,L"]TKM=NOT^H#]
M^R1;2NM+.IL_I@>V%: VTY]$]NG7O_,\4A73Y[.+#^>VZ$$;RB&&@D/9,MLO
MH_DB#VO#OW*:,6?L7/V[NB?A8E*I76?[)?.(;AM/,5FHI<RT4A1VV!9Y\QHF
MU<ZH?F0^B&&BTSA+YT3 ,&EC45_#1"$5O%+E-4P&)$$#P\2T/B.(RP+#) ^?
MOL4R:SJ0A2>,+&L+R?^ _^O1]WX[U*2OLK!Y;]K#DP->FRFUC[$3Q?,%2023
M;E0 ] I=$#V%/MW:I3U@CWX(8K1@8/F*PBAZ0.&"NM=?*F$/T6V@) 5W*-^W
M)0I-5#E/'!VU1)32BMM#O!!""Z))GX#ODPDM\+XYZ ] PJASZ+2U(O4![91
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
M@"U( GD7Q "S%9-LF;C74X/4*Z7T8[\'B4U!YNUH+=@DW9[0 5$;^_L%K5<
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
M,X&OCD\<T)QS$,^S]FE'=]BYTGPT76EN'8A^<_P$]Y)MW/)=0-)0KG>BH,U
M/,_:IS3=8>=*\\ETI7D$+L"=Y<4'$9Y<O6UZKERTT>[WF>^'/\F].WB*_A(F
M+_$B\8M23-V2^0K[5'!PZ>2:^MET3;T+R"YLB#@-=UKQJHQ.U=^-W%N#A)#F
MVG!AO#:L-WCL)J/T''V!T2:,''^^N ^#Y3U\!=XLBD <W06NGWA8LG>8TF )
M22=*?Q#Q  WP)@MU\$!"RM7WTG3U_1J&WD_H^WBT;Q9&FU;R5V"?LO7$7O@G
M3TQ7H@<4;@"*WTEZ^1@+@]@]&]('^52(]W'[%*@7\D)]C/=OWP/<9< ]<"+
M.>@PGK!/243!%GIAO'>[Y78G/E41J\0^[9& OU HX[W7CY@^+/K5%RP3/TP'
MVO2.X/4FP6U["A?Q3TP(KUYUJ,M&]9(EAD++C/>9/ZV<-)X9I&( 0902.D_A
MI"M%%PL)&R-DTF<[K#K49)^&R1)"H5_&N]>+LY-8'"\P*.]!TD)'J _8IRV"
M6 NE,-Y]GMUI\>R\\3HEFXM7A72&A71NN$(((2W4P7@?]8V# BRSZ '/P2ON
M-4W+4_8I1Q? A8X8[[G^#GZ6!(C" ']T06F_D4]I1*NQ3XND2*!0*_D>Y4.?
MVTO/ O"=VCL_.3LYYSRUEU5[Z#-[VV#WI]UQK[K"9&VC1'9WJ\+,,WH*NW,?
MIGC/YNWU5>6QZ <YFZ?!$,W!R8Y(7D"&L=CY0)]"_GBIJ)+7"D4;YC0X!6A:
M[Q3$9<$IP%0J;:OH:B%]*6:S5:>9 ]< QW0V"(8(CR%IK5+RL#VY*^ E/I@O
M9FN2Q?I?J?1O80!CD$:6[ < ,%F74:5V.L+1O-(X/Y0$C-"F+P"WQH69)WM!
MC0+X$8%%XM_#!6C7IIY55F5Y;J(V#2&! 0Z*-6C3H!9Z*<5B)&2:G]=-\W)=
MJBSRIEPL01B#Z?G4*35O&E>P,O+FL!XVTPI7V'V[L<-K?Y]KMOX_B/VMP6#,
MP8F _=W&HKZFM$(J>*7*:TH/2((&5K%I?480UV@5ZT4QFRTQJUCN'*=\EW%G
MXS7D_(ZNWDM_M>;\[%"5=CK#07W#L" +N7U:E:>-]QA>@ZOW;\X_0W3M.U%[
M7MG>%=NF<5+E8$OBE89N^(#"6W*%=.DFZ=:<3F*UV*%9,D /EDYE4$_,]I#_
M-^"0O],($2&7S(>Z2X94.DEKG92KU<X[\V&ZP"V=OI*63M>EE@HZ:MKK,=-G
M\T%=IO+>G/&Z;SYH=O7@0=PW"HD5X$3 ?=/&HK[N&X54\$J5UWTS( D:N&],
MZS."N$;WC5X4L]D2<]_(G>.4&SH[._ +0/#5(2>M,J-O%F_7LUS*T*$F[32&
MHWDL4[H?<%M4:HOY'CHOT,<6((ART\6;!X_ 31""P3(- _\1A"\10&G:J;M@
MD\3XYS!P\5-<!O80K[)#*0\F&0LB*+)T:+4T:$*6^\>ZY9Y6.RGJG>PJ'MQV
MEY^RCW+TH;'$:)\+=G2&G$?+>[2\1\M[M+RE6=X?#>LS@K@LL+S+.W/9TN%[
MB!<N]Z&39J;/TP<'R])"16#/4[!&?96'K0?L#4\90I [U?8(09>D=NPTP-<8
M#XSOPXA][J%?9?8HFT3\<D>T0YM6:8;I<N9I$9OJ4]VF2NLKF5+Z[8-^FH:D
MC5.T:Z/@#BBK!A-MJ_,3DHSGDV9[G^T\\=E>6W3'9'LII52 $V[;JYU%76TO
MI53P2I7/]AJ4!.6VEWE]1A"7!;97SUU/O2AFLR6RZRE[CNN^1459C34N,YG'
M:=E/:$<J1_-*8VQ'@(.Q.ZB)41P$+I\!%C(S+NIF1E'GQ F\R;96G6R-;!%[
M,=WD+9WBEDY!T5)^BX.S'C/MCC.]8BZ%...U/LZ.;^='*;$"G A8'VTLZFM]
M**2"5ZJ\UL> )&A@?9C69P1QC=:'7A2SV1*S/N3.<<H#Y*BI:SI?I*2O/G#0
M6M>%CCC-M%\:<V#QVBZ7==ME5]\DJU GLR5= 5].X;:-4R=MH^ 6":N&T521
MM472SM-HI(Q&RFBDC$:*-"/EW+ ^(XAK-%+THIC-EIB1<FZ7D;*+E^N:!+='
M3=II#$?S&@8%2<#-M&N*RY-%[)G3D[H]4]2CG1ES>C)=YFT3-%^:GC33;%'8
M-3OPPFNNR.UWAI@K&HRR')P(F"MM+.IKKBBD@E>JO.;*@"2,YHIPGQG-E=%<
M,<)<B5!<XAC_M<\O_JJTOKX.\6HR(%<(.]'JU@]_5GL%C?]NE6BG'T+&B43,
M9MHE,]=%"6[:+B^"D(5RVG1K0EKCI%2E?L;*Z=3)FCGU=\T4M5O8E8PFC#03
MAH>MT9IA+%/)0>*/FDS;4JR9')"!UHQ"*GBERFO-#$B"!M:,:7U&$-=HS>A%
M,9LM,6NFK6,:N_E"6:T*I7Q@5J"=?G TC[75T@FOF9;,/<!F@YCUTG#G6U:+
M?@;+^=1/6R9JH]2>,],L4=@3A3GAM43D]K;1$I&QJFI< 8^6R&B)C)8(?Y\9
M+9'1$K'3$DE7A]=AQ-Y(:2FM'?.=; P1</;0'T4 S#< 87J"92J"PK1Z_^;$
M"4DFQJD:PC79HC9R@ ]VM=J@-NK3"DOUVMG V!&+!&Q(J)W6-<DKT\]@_3B-
M2 .G;M9 4;N5]KB9YBO)7JC;%>4M#/%:L3FTX[)B%?(IP(F %=O&HKY6K$(J
M>*7*:\4.2((&5JQI?480UVC%ZD4QFRTQ*U;N'*?<C"D'O*W78? 48\3S),8+
MA, C2;]#W[\-T4\'>8+;:X+U::<]',UC[;;)@&_FYMN-@P(,-7H *+5+A(R;
MALS617T37&%NZ6AGX7R:@KR54VS.YHMI03.'6<=HZTBS=3BX&@V>T> 9#9[1
MX!D-GM'@X35X/JGWP@]B\'RR:]]FMT+?7Z>2&S_=6>!]@7X2 U%S1Z@V[32'
MHWDL8Z<_>#--G=2\PV"!A\V]#0BBM#J2G$\L^/!SPY8.J7I*3!=O4JY\DM:N
MGP7T&7^#6YPV>.J6&CS=D :+&D.\U9EI%RGL\;(8Y#61Y/9O0TPD#49T#DX$
M3*0V%O4UD112P2M57A-I0!(T,)%,ZS."N$8322^*V6R-)E*VKE]O_/ =@">
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
M0ZD[DZ8+C67M40)^> 7[QGMOBSCU.Y)RBOBJ[Z'S GT80Q#1QX26I^S1B"Y
M"]TPWK/[2%(,!\"[<5" I\=HYKK).O&Q*#TL%^A"FGJT/VB/AG3$6BB)\4[=
M^080:RA8W@.\L"ZZQSMM FDN7171)RRB<T/5001@H0/J/+:#Z, C7*[B^>)'
ME&UN<&G"WC.VZ@,/S$(KY+M=![T78>;^F< (IH']8A<BG-<O1"A7-MZ#H,\]
M" I[XC#W(.SU.8.C>*Z2" ]-453J.HQ#))32VK MP%V=<!%P>D7=-;6<?$2
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
M"Z7>-WW90@4/2+UO^K*%"1Z0EMWT90MU[1 MO.G+%O)X0&IX3E;N#5*VD"F
M==@+O@Y_@Y0M%/9"/^RU8'UND+*%GG:(P][B)>L"*5OXX 4Z\+U><N\ELH4<
M :P#7_ EYUXB6WCAQ#GP75[][B7ZK#ZONASCJ1VCK#N[#I^ 60.2A/8J> $-
MD=%^X 3,"JG@E6J5AU8H>FT224O ;%J?$<2E,F^EK&M>2H'OMUAPI?&?PCGC
M"7W)9_-85P!1D$-L[Q\LR*D NG\KPX\(+!*?7-@0Y3%#W"%,'UI"F+;12+MW
M3K*73K*W3M+7[H*5-(U-V@:+P"V.J9/BF"8ICJE/<!2Q)!W#CH3?8F9$D<(!
M8V"^>8.%!AQ-]+EH;NB;!G6:=^@<UQ6C+V"]UI :W#2H@2+TY51(2[@EHI>F
M#'C3H-X:P,U7P_I44 *FW31X81MQXM@MO&G0.E:%8!_)38/6DBPH@"%N&M0J
M>%\#HCNMLT7 Z34('RAX7P-B13CB8[@=K][!^YJ2TB[6_3U"#I"Z!^_;P@47
M2KV#]VVA@@>DWL'[MC#! ]*RX'U;J&N':&'POBWD\8"T/GC?%C(%L-H6O&\+
MA;W0ZQN\?ZD^Y8"<!6,K1#."]VWA@Q>H4<'[MI C@-6(X'U;>.'$J77POBU<
M<& T-WA? Y*$]BIX 0VQISAP\+Y"*GBE6N6A%8I>X332@O=-ZS."N%3Z\ :/
ML2M"MQ>T.%R>1_55!S:S=97HC-;HN/X'%-Z&:.T\@BC!VC1?Y)<$XI]$X_D_
MMJ8D#2?INR;YRR;A8K)[G?9Q_!L4DCR0:V>*LO9/P\4TW+:_9_P^=^U&QNV?
MGYB0"52(7\YX_0*Y-O'ZAUA+JZ1;@!/^M70KB]JNI552P2M5SK7TD"2H7TL;
MUV<$<5%C1,Q92S?X4$H+J%<0)&VW'3&>U%<9V+S6%:(K6$E3I$;79S5)X#N(
ML]OC[\-((+:V^?GC4)IVR)(&%PU4Y\9! 0R6T0- 3RLL[ME+%"/'I=U(12MN
MCV(((;0@VT)#1RCZP;XHKIP(NOQ#"+,:[11&B'>N\40<O]4S$DT<7Z"?Q-2[
M0<4K.F+-8DE@P"EK4._AK0/1;XZ?@&_ (7^G9YS$?(4?3D[W?86DUDE:[:1<
MKS*GX/<P!L_A+0R<P(6.OYV]\N8\8VR)LW]U,N]#9KKP3K-+PU3T7#$V>#US
M.2!M/'/=N<U6Q[LE5GYM$>/T'N,);5@7X+!.O"A O9Q*E-8S3_ QG]&.5%%^
MN!EFX-6+XZ\@ ,CQ9X$W\]8P@&01$L-7</.V 4'4'"0N]*PIG#,8J[/>';E>
M[)=6.7?!)HF?\1L9XS6MN'8<=QJLA=!9X$ANPLL<V^D/:*< 0ESRJ4*7(=U<
M9;@/2?87M,Y=Y5]1^#->/>)>Q9P1!&LQ0FV$)@89 K!0FXB5'29!+*Q ]0?M
MUQE.S/K-0!&*2RJ"_]I7#_S5/QZ=8-FTQJC\IAW)0@N*=BCZ[1#P<]?8?_=^
MU8:_=BH::#-J;.8B[ANV4=9)\SG$VN_ZD<=H5Y6^=ARF$NB\L0DL_VXR@:TX
MM)GV#A+":-K4QPMHB)QS X<PGJFC@E>J51Y:H>CEBY(6PJB0J%[^)TY<&F:&
M^0(0?$T=H'=!%*.$@$BWGJ/YXCI<K\/@*0[=/_X._/T-?='']66:35JI9\I
M+&D5$P/4,2!$0!%R/"DZ J@(2^#5!-KS%JN"$&1)"Z+NNB!I_-\)XBN>L.;!
M[F_*/$!_P'S5Z(A1DE]!N2X4T4VX([S (&7J.@Q(1O*T=P01]/(34??0>8$^
MR<RPYT5KB1SK4;,]VC64,"2=6"ZKX0;!$.'WIY.>N@"S^E@=S>)M6=$ M#/>
M #1<;/OJ2>G=$R<N/Z/=X=4/TP5NW?25M&ZZ+B&:>EL\4[C#,W7B\A."AUEE
MO<W,R#B% ]&!^.<-J9.[2%:YC_9WX"WQ:/P%1' 9M$73-1?61DD$F*O3+8!-
M+Z]&O>',$ M:<>U8%""$ATUCO%1%FX$WBW(8N_F8N;7-\605_[GZ0PI"1#59
M+]T@ZT7Y]Q OWPH@;3?/[)>TC5)>B'K=1[)=H5^];S_^'6+;!KFK]WOP"GS6
M_8Y<#VM'=*=YM@=6;3;F)*A)V?BJRX%]$:1('=HI30_^&<K46106+.&W>%-W
M293*\)0YBS">T%=?.E/,4!M._)8JR9FPDIP=N9*P\-LT.Y4@GPLKR?F1*PD+
MOS9AF0>)+=* =*$U*B\@\U(-JZ2"5ZJ\L45:FO#28HM,ZS."N"Q(-;S;*,ON
MT6T-'LB*Z4LSFS%6R  #F05KY@Z;U_)B NQ1%UG@!\DDH\6N__6*A+!'=X&4
MI#/G_'O^^8LG,)B03=%)NBDZ*6^C#K_C+]MVR<:D6> 5V@3)5?0I(F\>/ (W
M00CK'LF&%?T(PI<(H%<RSZ4K>/QS&+CXJ:QG-2>E&_95:BV__&KX;B!8@042
MWU ='3[@T>&3FJ'Q$#K7:&T.)$,+YNR#[\,H5+]#J86<31P+=4S-)HY.&B?.
MO]1-' MU2K[K52=]Z4QQ#]>KA4K2:Z!O\U!)?HN^RGCXZ7) B=JT_50:)7Z'
M\:HFEZ@JF*@JQJT7(:U+8/[M_2Y+59VM>'P3^C"RE32F;P""H?<4.RBFNX4,
MZ0P4&3XD>()U(M ZZ$M^W=@E#B_> <YK6M<?GD <^]DZ]# ]HO3"L4^H$/
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
M@_1IMH@!DJ14E;J.3[/:X4O:AC%(O7IJU/$I$4MO>N>E4!UQPA3"C\#+-Z&
M=_/FXJ(MJ4PZU'4D^B0$/U>NBZ[*=9DI5P"6Z?WEVFP1MT6L< 5BF*PB(@!S
M);@TV#-)@=MR>3CSH:JH/NJ_^2^J"RR<A2_QQ/S5"@7]]S!PNVC'[CGK%:0%
M:J$C0SB<!PT+V:6:C*[#@. &@0M!- N\KXF#'#QSB@:$?*BGU"J]Y3\FE?=,
MG,";[-XT9MW2)U9#82\>)NO67E\U>(J_2B(\K.'5K/MG B.8,D*_)8A26ANV
M!;BK$RX"3J]@@::6DX\(L*\0:GU..V)%..)CN!WOP/<,S1]O_A//8R2L'9')
M\FD%-\_(<?]@W#+4\HP1M+4+OA3 TQFUL<G$-&!-:!3E!61@,C&%5/!*M<I#
M*Q2]IB]IL6ZF]1E!7"J3B5%FKR_YBY]66#(_ AA'V+Q]!5$,O&?B&B<I>4 0
MI0R0TY]X.?Y?('X$;K@,X+]V)E]Y=NM;I[XZP:9W;[H;1 S*DXQ1;UN,5D\@
MQG:_]X@A(NC&<I5*Z@LLT;#A9:+\QB/JL(7@*X;R"G;7\J3 27;[<+T.@Z<X
M=/_X._ I(Q3WXU6Q?-)_[X,V&/5#K/P2(][Y:^>F38A-L4678N6:K9@U6*,.
MO4';<MM08=IBP"\PR(?'W"T=XT\1]-)M ,(H(@?64]]UFC-[OI@GL1NN0?2;
MXR?@[W"Y:G'4R'F)^4IX0+D,<)N1E)&K&_0'/(Z'WFV('L$K"!)R,'D1HK43
MN.#904M02U8RZ+O,5\3#B\>6ZY;XA=86==*A)O,53S9X,^]I2M<7U\X&8@-%
M;&OY8WUK.:ULDM<V;A_KLWVLL'\.LWU<[7,F;Q\_)2]XA($.>G]R?+RF2JU
MQ@8RM;PVC OPUT"Z$#S-O/"[%G]WUOCC,UZK1(Y+&L7<16Y_4#]RA7AJX+D;
MY&%WDI]6P%\\H##: #=.(OKV<6-!_3CJ)N.]M3D_UF')>5X!_.7)%5XF<//4
M]DP5QF<-W-!2*.L$6]VV<L]]?AUH$YGJ> $9N,^OD I>J?+N\U=)T&6%(6N?
MW[0^(XA+PWW^O8$X\UUQK"VR@OJRQR:"O99@8--UFWU_/LWNXFP\%-A:WDY2
MVR$JW].6=N< V9N[BZ($> \(NL0!G7Y'&Y1IY<U7A&X0E>]I2YN6\7H] _TE
M03!89@-;)HSOX&?Z$WVJYGG8(A7ICE?YCC=E4IB3?,6^'Z:GJN9IJYKF@H9B
MYM,JA$S7K6 \>[D >-$ME@71/[*%6 G+^0X:9W>>YRRAN#-46[9;RP)( 6=Z
M'MV\ >3"J!8TR?V<^0K2#ZKY&Z?E4*UY$D>Q$WAX8A/=3ZW=RUK=3\V.[H9!
M]G4T*;U)PY3M'Z<1:>;4S5I/[NW$;<^^C*;AKNW"F=H[U&SFKNW%V<7'$]T2
MM'?FE7=K-T>MS=;N07S8"JD6X$3 A]W&HKX^;(54\$J5UX<]( E:G9<WK?=T
M 6=!FO8#';+70!M$B.53BW:\*B=,RNKP-XCMQ/3<DP^)O4C?J&\N:02O[<SL
M6=("6+59!&FP9:D!_9T&>4Y<*K<L)5%=<@;5;&$*Z:Q']*6?S61=!8112NKW
MF\RS'CLHEKH'RO+@YRZ?-+E(<0Z6YB+K69OY"C*$ "Q8*!Y\/\U$W9& UX(Y
MIV%%=H,_Q>]W00RP .)\,WJ.TDT+/&T7YVO+6]7\AD>'RNU1M0'E8<']Y<,O
M?TX-U1MQF)(VBK,%T$U0S0 ^Z+[0C8/(W==1$?@BM@GTJ7ZHKJAP@FO,=X3&
MDW7:[-%<8H6U*C%K#L@"S\,LB*$'_83D7'D";GZ;\,V;ZR>XZY$]:N*#23*N
MYHO]CGOUWEP!PUD]X!NUT3H!':HKWJ$%I-?.1W/CR3D?ION[[3'M5./0+//J
M68O(]%*6F_7&#]\!*,71-+K/6\L;HAXMY-0Y%@,\\,'14K#3,P(.7KJ]I]]]
M _$J]!@'27D>M(W!GL@EG8NCA8(^_2#>MD?\#YVV6B$K*>)#274BZ1YSHP%+
M0HLH7D &GAM52 6O5'EC;K1<3$C;A#6MSPCBLL AWG/QS;S>4$K=^BH46S>D
M6[,,<0QV^O6@KL\*^BLG@BY>37PA @->7S=I+5:^P4V:!LP7+9B$BTG:AO26
MJ[P5.CE7Z2'7GZ8@;^9T U 1?[V#-@T7TQ<";8JA3;T,6M,SHI'V\E]LI),7
M:YNR7#Z'UPI.1W$A%!L<Q3\=Y#WCU[!<N^4RVFB' $\-TU<K),T6L:ES$ ^W
M7CF3?CDA[-7[KDQ^?74*<H<T\!Y\)VAUN0[Q*NV4IIW_A@'A4(+12_6&<<;J
MH 0'([2K U=/A2C=]D%:GX;E/3[]8"H%\YE1,?H(RM3<=5H0+;)VX 5DG@]2
M)16\4N7T0>HY9,KR01K79P1Q6>"#_ [BNX#<#'(?1C26*V7T)9C-59WD=EB2
M#.:FV^D/3//O "Y7>):>D>P_R[U8WU*(9^IVHZB!4!WVJ$E_V+8DT<.]!:4B
MK*91F<5X"?B2Q&1\?0[K"\W2.I2B6?TKMD?=!I*%!5,5I2/F^P.\<?R"M=BC
M6#* *\_J)\M)M+^_]X+-6,>E;:;2BE=E='IV\5'O8Q\,!X\(0DDG/E2.);5
M5L:ZI[&L=M0+,=BN '20%NPBU7:TLS&0D_^\M.T:P((YQ,'E85, $N]DS45*
M7)[1S/-@UOR[(+V3D/PA%N/PN>%^-?)"LJD+O$GYE9/TG;C [K43N'OO>%Y,
MGU "A5UZD/-B%@W@Q5X%(PJ@7$0;7@58JE/;BD@O)S+7[CUKTTD#GEI%3F>)
M@6CHF]$PK%7HDZM0-QL4ON9[<]FV+6D>Z[(TOF>U)8HA]=*.3&^HPS)8NW">
M31JCN 4\B:(;]LC1M1.M(A#C=9]7VOHNFD;GB.<Y"\CJ#'.(DTG*H@PUH*[3
M J,=TA"Q F.482KA,RSA,VVC#*DZ<S#!Z+6X'2C*4 ,E.!BA#1XH(2'II1 /
M *5.G,#-KIMH/I'<4GI4AFXBTFM:&CC@]+C50EQ0IAYZUX)HD64D+R!UA'0.
M.%5(!:]4JSRT0M%K]I06<&I:GQ'$94'JS<*?\^R\S:((Q!'^4'QW\T8F$U"9
M5 +O"@1@@8?YYEGG.HQH81M#O$I?=6-K3EWE#B8=Y?=#R[;Y 'J%^:JT)@4L
MQ%Q,)*E D?Y[OBCG4&JS$?O6;X^.#BL26^)R6Y?CM-5X+IQ2U%\6%=C5"2;Z
M'GL4]3"BL>82[J[2J@;?SUX=Z)-%UFV(ON)G:>N H5XWJF\G"5D31,PS.7T/
M@U<0D;!K(J[H.<SB^BNKIN]A_%\@?@1NN S@O^AQB$.]SQX]/JR(E%^1KKLB
M9]>;X,$@_XJ4.SVT=C<VHLKGN?87?2A0>7ZYV7)M?"J[E_99\(6RB/LM%?%=
MD$O.@>@WQT\ 3>.'>IT]NGU0"0UVM[TIB^M<:.G"+2J$]A71SX4/\";+=/<
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
M;8(DW<5].BB2G' A2ZXH9=?[ZX^D7BQ9(D5*E#1D A2H[9 4GWE&?!D.9]0
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
M\VRQ]\^O ^%^KS[OR0U=$=@P?0#G]S\!V)^<%8ZA\+$5^)\"J_SWAZ/HEA:
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
M=TV+HP%6K=%=5*F8N7G?KE$B%KI@%S*8'E'F-\?HP6J]"T=3JMR>Z 2]<%5
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
MR-^QVG8)I!@59<)I^9),X;K83:3'6:HW#VT4"3520MSKN012@#E!%EBAT:%
M#QFE$0G4W?#N-Q)FI-PE^QS;H+%IF_ EKM_4!,.%W"S0UXK,Y_Q7NWW6@."
ML:E)9=VRS=G!24WR8DPM"WXUBW:'4INCN_BP%-ZJ_1E2/X/DA-B7A,@M]X#^
MB-4+GFTHKF<#>%]!601_;8UN#!V <B2%4-V$6."U0:=J.J'MI7S(Z,>E_@XV
M7\_7 O;NGHW!QZI=9U6FJ')%/U$0\GAM/E&^AI<?$?DK6WM]/-3V0CEH@Z8!
MJ:NXX^V)6[OMXI:5B9?728)C.8X;8@[5X>:AS?YG&7Y]8-,YTD<+ ]C%<[MD
M+?M"SYP+7+%$ 7K9Z)B&&-H"9LAS^X7W>?^<U4_D]EF6&J>STUF'\[EBHYWD
ML&PV]36,?O/<'BJ;'\OM79P'\D!-<!1M+/$V7V@F).21VR-J[0_D]K(]RC7L
M?A'AD#8SS66\])0+[UAW-'+[Q3"PJ_"D>(S8%0.?/^Q*/-[0421%L/V@?D[+
MJY4[STAHCT%P>PYF.W8,-!EJT;& Z'I;$)3,@:A7V"1'%<VLQ31Y8+?PT';E
MCDJ[,?U[XEZS")A"L-U6>>^4=O9O_6QIY_*00+!<C9F6*!OUG#F0>KDEM8@_
M(/&Q0/#"RA<[?^/H$O2Y8$NO<GX3V+)IZ\$.9JLE5UL3CT;:,IDMJ Z*Z"0[
MQ%/=VG :VF[=@6S/V?V(<%^YT']T6Z$WK<\ Q[45T072RBDX2'X=AN5VTU-*
M9A7DQ#H'",J6N%&IG@[?D;OO8."DB%]Z</!#2#@6!QJT,2FEC$(5G9IM8I8I
MQQ>8&34,W#H.W._<E<LXOIVW)VBA2K!4T6,F"UD6RK5V://[O1W_EL7;CSDO
M*M14O9X0YQ1;RT][E7A!F2\?SGL3"YX9C2]X[F:M7YXUR()74A4CWJDA@_9\
M.@BMM4-Z[N;=X_B9;/Z"N$F4J!J6R5*DVDUD,@KI6(36>N F8OV H\-]FF T
M!'VO]I<',K!MF!:#:!JDQ>"6#1;RW03:L?KQ&4?W&T8^E\H1"RZTF7]?MDUG
M_H1P8<\81XNZ'[*@;1ADNH1I!4ZH+Z<S1!8Z]?#NL1X*"UZ^)'LZYW_0H%@/
MY#1IA*%TNZMH5MGF6LF'2T8V<W_,^H(_2"=-LF^KT\ZTJ]>G4Z69"6UR#HGU
M0U"'.S;A]F/63S?K-%-P%A15K<[3M"4T."K$0^VAL'X8EG"\M'Z!QBIX@=5T
MM&MG$^.%Q.>*QM7M& 7%'9(>E#?02FZ:*$X\CE9\M#YWM>Z4"8.F#D=N;L(7
M'-OE&<$8K8-%\*FN&(KN;4^\0LTVXQO$E*?867ZJ,J7I?*B$CNK!=C_MI/CQ
M._AX(,:7Y@#O6U18[%DT,9YR8P/$;6[*4$-.*>- !:&;</&61??%^.86/?#1
MMPNWZ_-"!6?L -?5@+17JPX2Y1X#6%3=@9Z=<P9'$!Y'MG$BF5"_CH^?S2U>
M%(?79X^>H<!OCL6#Z/)9+!:XS)!"C0G*T:K>S7:9I+=(?)WH],#B36H=QS45
M] \V4"-&W=E@6B]X*-+TV6R/F/1 (W1A[T3'YQPIOS0>SJY^G(4'OX':A8YM
MIE! U[TZ2BV2!29TH2>L>(A4/>0L/'2\9!-/#^@JA2^T;D/*>IW\,DI%T7OB
M(00=_3-/Z&X"T]+ S%QLS$Z6M;$W<7@=K<9[8M\J3>QA>+<V.7V [ O9PCZV
M\4?VJ\(7"/#R;D5!M]#A\G/$ A22;=::^-QUD/#F]=,&?"E<M"R(GV?!H@V
MH2O:=ONIE--J#("/:UQU4"@SI30QKH9W/N!I [Z0+5KCPV?:;SVY'=^[MG5%
MJU;@Q_4&PW%^I::XJ:HP;#0B&DN/2ODE;=KR(&,0YF"XG:/;2\TYSBFKG.^Q
M%A57LSG$BVA0?2';E[1?T[0AX=MR&CIG\4- R0.5F,_LBMH9.6DJM%3V'4ZS
M+UFT;'<FHUE'&NR->+I<UI4A7>ED4(*9#>AYJM=G$A&UXU$IH\5QSK0I.U:L
MMBT$YYFM+%E?6'.E)&DI:EH<YMOF9.H0=$3CZ0O9HF4_]#S[=13'$[1@*;>F
M!-/$-V9TIJXYSFA>')W64SFV-2%*_:B:\6T1KV3-BXUO_Y$U-\LQWXBP<FV!
MC_A%(Z,J!-=22TBQ,HRJ08]*^25MRKK $LWM.-3$XHB$TM&:*-ZJL@56M8V^
M'E$['DCV)6U'FC: &<1P+$CNVD <&Z9FCA3@-)8U15=<L#TV-=,M)083),>@
MOC-/XE4>Q;IT1#N4YPK])2V>@UTP=RO\UF>[1&-,M9TDQVI.>SZ<BW5D%%&?
M?4.^L-MQ;[./]&ZT=??W'U7RLJ*UQ/( 'W'=5"EA5/I+)4E$M+]RQ4K>RX'5
M%(*FSQQ(V[_UZ@/MIV,XS5#/Y>JL(;WL\BC%CC.L)&R1*UK9+$6BJ;JA1C5V
MOR/LUQQVQS#^>1>@YP]_U &N3=%%.N^X&"<D#,D>C@62S$4T--S*^"B"0?N?
MN;_/P:T7,#[!8^C.^,\?_FR,+F.C4G*"SDHJ/2"2M=IH+LCA/<3H?F-T+Z=8
M$ B&GF?^@ULO8/[DVN+K.1;/'RY+[RMU76?*&6=(D<6BUO=HK"14(CKR=P]Z
M_W(&1O(\N+R\];Y$XOAP8@ZQ$IA2I "']_6ACJ8KJ1D?T:AQD^'$\%"'3^#A
MY5"DH_7XX:C3*J-DE] =6Y_+PUI$47#%H<@O8?O#84RQ+1J6T%(IE&A+Z;S?
M6DXGHXBFAZL-8WX)N[\L)/2]BN^QI6*&F[H>KFI>W*E&M9Q[PT+"W6U_9(;V
M'PY_BP9O)RLZPE%D.\?D^HY*HEY$_?\FP]]AFZ']1WAX54>B2\0D7R=;7#=!
MZS._[YBR%%$4W*YR$$W;OYR<S4]'V7P<D4550 8#2>I-TX.HSNV]XN3L+V'[
M5T6CE@.?'2(34]5+.N;K)6K"E"-*_&]9-+JW]8^MR_F3"3<+*UG*=<I*#E6&
M]99,\E@;FT2T;'S]"3=W7Y%S"20<GZRCCY8U.6_7!!67+$+#Z\E^LA71@'"3
MR3I? @^'$WUZC5:MSXI)#IWFO;G"9.E>+[)L\%H3?;Z$W<\>1=#')HX*ID*H
M0K9D-K)23DS6(DH2PS"*<&^TG+?+_+L;G;G30JXEIBH&2L_S)6> 2BFI'%I8
MO+4!Q'?9Y?#E#'L=8:H:-G%DJEHUJF3:+:>HXM4M=X:F;K'!YXNN4\(3DGW-
MSN@4[@I+JM-*MW-2&'1QEUZ'!YU@I;7 &X*3Q@T)N@W/L7F^O"SJ4KZ_I"G=
M9-+,,,>-AM0S.=2!X'@V^*TX9@+'4D_PD>UO;"]M/P<_\LX/6O!^?K$T4_/D
M*-.C2(1H]O4X6?25U[^XD0O^^?$?S"LS:):5?,YJHWK>C#>60ZJ<+G&DZK52
M:L),XGLGHTNK!_9?UO!T !%FVG^HB5?/!U_F@6'JBO'6:S<(6+7VU'L/7O'K
ML/7G&X+,YGDNH>GI:L&W*1Q)ILO=CI>A&]FCEH>/?,+RF\#*5ZMX7%"3CD#1
MJ1QPD5R=2Q9?&W\5QS?/?.)7*8[A>2-5!49CKJC"PG.FY8+7*\^. QP^\ADQ
MUVAK=9:.L' Y@5+B&N]."+'CX*,C$'_?YO"#LGB"-YF>+0)G_7$,!&D5<Z#U
M?_\#_Q-S7%^#H4L7%LA<D=SQ$X:B_^=O2Y DQ1@A&I#=I^3/=/KY*UL9C7??
MF6M2!7]&@X%U!O[^<?!640."_30TW?'?+W_@K2>M[7,RC$2(+.B*YC_]JPT3
MN!-K@'F,,77!^-=_UM_ ?QT8O^1__;VZVU&6 +[:<G<-A3_KFOH3MO>5:UJK
MST&80P1-&1E/(@0+L/\>FC94S/,SBYAC:HH4^]_HZG_;Z\$+XC_AK[RXK OV
M2#&>@I^'<CB68!R(LFX<O+CZ- <K%0Y-3?I[!FGI4-%@Y'\:*Q+,"O#Y__N_
M%SB*YO[^YU?P(F@LZU*J>2WW.0V/?Z;AP@KP?"HN8.E4"N<E+)[@$T(&Y8=)
M*<$#+"T!-"F@1#P-&_!+N)6HPS<,]*:%?OSF&N4VE8^Q[6R;8O_Y-;RE13[0
M3)8B.:;<+E-L+-O(QZ@>6<HVBE2,I.OU,LN6Z<;EVI[Z<-,/V]K-LJ5RH]BF
M&_^)Y7^2/V,XFDQD;M>^6/#_Q/K?]]K*G_F_"R+C[1AUOGH+-%.'SIA%_UXU
M"@9^PS16Y$(18QN:QP#YW=Y@URR,2U:>1JFJV"H7B&1^5!Z,?L0,(:"[$E">
M\J;H!?DVZ$W]6+EZ0[!MONWG:6/.EX<44IDF!E9&2DZGK7=:G4"1PEJ)!PV^
M)2225X*$*PPUL'WA)I>(IJ8)E@.>MG]LDLP3&OR\"[.T*VT?F0';541!VS1^
M)0?,17_/QXH+$!AM10 U-K<%^-4JR<:)Y[2W1<QE(M9:8]M,F7S^)LB-+T+:
MQ'-@+\</?OP0@ZL3H=S__E#@K;"K!/5J:D-!TTQW:"Y^7 >B#!@ICKM^&>1>
M[NI(^#W,^M7YA$4[B1I*Z!B1J%47HT+_-6:W>F/!R 0QKAQC?1W"XB74WD!-
MD!X);..3;V'\EROM&SU,YGLC#QV1DJ&*9;;-9-LPX:QS9IUJM&--CF&Y+/RC
M3<=@I@JNKB,4AL?H0JQ=HF)["6R7O+)D.[B,9>*)G3.MU/0K<)!?*[^Z4' X
MX+PK_WD=+E;?*$;0>W]"5O?\60"AF4=H"%%HR!J&)V@," K!>Q&AY#46PTXW
M.>"ZI4QFDI^3M#L;73PBX%\\(F0;#2Y;BS%4DV9.!8+X7\*_UW_23 Q+_B5M
M/]T]/+Q+U4_[_BGE%$P[YHY!3%8<Z,1K@7W8:XX!&&6DV!O\;<]!GJ0@C<&7
MCB7!#YX"QI4\I+DJ%5+K N*>BWCE@L0D<X,AY2F9G"IGQX1HO4Z:IS10$:#S
MV?Y:]#CVGUC0M.OQP#_M=AUI/6GJNN($XPNQ@@(#.6SL$ ;JMPQW4<-0JW)Q
M\)/K7]RSR=A*3UT]G^FC"EG.T41;1>?UC]D$15$$SV12Z)WY>/S+=M&"B'8;
MC&QYK^$&>]CNX815IIR9(96$BI0I?8JX+,D[V7?:G:=8,LNT81!F^RSD=FRL
MR-!<<^V]Y0;Y)F!.O?#G3:L2?U$+0717.HJ9<NQ9-S'!B3D6$(-!&2FF&#'%
M=6+B6+#A*_[]0/SG2SZ-7]G[U7?V"YO[Q-BR ;*BQC]^Q_Y:S0705BYWB(U5
M71/+_.VL<:,8KAFCC)&F../87XH<$ZQ@7#C@&O_^]^V+MJ?I,Y!&@FW9YDPT
M/<.U_8LSA'60*1NB:4/Z_-R[)M>_1YK206%H;J=<WRMT5,76*N7V0#.ZB=<Q
MYV3&%0Q!$NZ<F#Z*K2:T@&*(,.C8,1/R/3LV\6S%D11Q"S=E7X.KV^R18"C+
MU>?+PNKKNW+35N ;_-AVC"U6-B0OV*9=T&*D)D"^)D.'76DZ .B&M5W7F;^^
MULL_F9_LSQBE6YKI0W66-[,<-IJ^A9+_(&)>(1IF)<D.IIVM_ZDI!L#V8N"D
MEG.5?IUKJOB<%F>,5\K*V.NRPJD8B.%HC F@K6FQO*W,P!FTZ]3[_G,C+KK1
M" G_I.VV.3?VU,*S8UMH6FH3[8HZ1_.5PMSJ?JS;TH5YQ]9,\QK:>)E8G2#)
M!8DUD/%*676CKE4^I>UM#MG3&<DON"I+Y1,HWN4+K32]:.O4QZ!$&ZX ^_:W
M4-F&@EQ?81ONL:>H6:Y4X9V*9:HLT>+F"5]E,O+%>,?Y+[FMGS5-B%)MH%@O
M6)C%,+U,G)!)5)?U)2JC B*Q'W.U!MZ)8201F3I-&VA/L;^NK?T@L&5M(+S0
MMX$UAX,\/0 HZ<7E1&I<SFO$Q]PTB64^";U_7QU[-5,4M.;8-%[7I*R"RWK9
MI2RH),KALI^SG(K[,<2E$@22QK![EZ0^2HHVKAB#V3KF @U8@7YBQIH+'>EF
M6C:,\XH%R2I8 -$+YD?!6R&1 DZ4Z!+$!'\0C\"6$CW/+(>W;&?ID_#-@KC=
ML7*TM&5J7BMWT:)EE^QF0?/KM>R!LZWO;P+;,0T#:"_*6W00Z=F)HE!X<EQ/
M# J=9&7VL9"?!XX85("<&.L[+M"=V%\<F_UWK%9[N\[UL,DY_)>+"W$OV1L5
M.5JW)T7&9GJ+U7D7YQNF:<ZAU6,%8,-.WK:ML:9@JP^[?,@N^)Y=6CFQUYBU
M$CZEJ*D:V==M&' _%J-Q-([&#HS#F((48ZF'63YDEOB>64:"RG.MH3U!];S6
M;2E M9'BQ\@#Z\'DM!E@2UXQ@7X=6[S90XTK%-GL,F6+\TBW,T$2;:(Y_EC@
MRKH:S/2?[45\MKM^2TT>[[PV"W(Q-^_U.RBQS&3L?)9.C3XX3EG,WK<_=DM%
M'NO,%3/S)ML2A)KJC7-)0L"U46G^,53&T7@\@R11XI[]N=-S<J_=M[LV5WV[
M8]AJF(EB+9_KH@33F3380CR19C\6VXE4^LX=PRNK[D2ODDETEX-NH=M'B>S4
MJC%U.<]]L*J#)U((FD#OV*L,1J6#KLM_8L*FJ_@7#)2:%\STBBT5"YI" O]^
ML_\8XF[OLP@"A/U&!MC=%4;P]4%E, ;;,8,]VF"L/9@ %:R) E)LE2XNW,O]
MH( L['+;BJO U]NKSCFP8<.">5IF; CVO[,\V_&"R0/P"GPJ\)'MI-:_AIO9
M:U#F0+RLZ/[\P'S/O;@93-<<KS$;+*):.::QFZ2WFJTJ>*ZY_6*]/FOUS<&,
MUOVE4>M[@F_VEF2M9I9N&[;Y06QM\>.S3<WMK-($^C/Q?_91_6*NXMZJL+UW
MF_!]LF;.MVN(MI]7.'H:0N2HR!SJZ-V59KOKPM Q-<\%?V]G+QY*N%[XMOGO
MX>3*%Z*MYT,>GT:+_T2Q.PJ\F:ZY^N%7LO^IS,_FQ)(_L>3#GA&WYU;FK8?&
M,Q&5<#6=]_2\]Q>1Z+T%G<?5</>!_K;B:JO9:4 0QS$QF*[P=#B[^9,@/Z:;
M]:$ZP2QB]]KZ.5\;ZRSZ^K]G:N152(LR,&QAQ:C6ZPO^<O[]@,6?PN*MR!AA
M9#0V\UE7$0,LQ+%@C. 71@R:7!RO='+J\7^&=NS7[W=O>V:^+X#W?GA^J>_G
M"+U>DW]#75^W2+G=0&FWPG UW8R66=<4U55?>'M'L'(@F"MI[G;?=1,E$74F
MRE %16OA68([%*KS_;[PIFOB8_APE27VJVF>6Q:* V7,=3-)SJUAZJ S_U@U
M;=VBV&H+).<_,<.,0:^/S03-^^S\HCV 75&SJVVJF.!WG;;9]&SH!@[8J'DE
MTT;/!NO/B+9+M2@ :ERW.Z]U.M-S]9Q+37H88#2#8ENY9FUHM;I#ZV,UAW43
M@TZCM6ED[*.JOU3,O[>?O;WCQ)MZ.W?'B0\$_D-*\(A$'XA$&RZRIB)[[I$B
MDI,*'9>;JE_-SA><4*C6I(]5H_-LL7>Y>+./L& 6&J(LD#5^GDJK?WBFI9>2
M<]WN4KZ1DWO8G$Q6RO/7*?</\_KZ4_ >*(RM"]J;TZFVDWL_BN.'>Y_+ZZ+@
MWJ]6;T J]P?3)6]#0J@-SWPQ[R9A3,QN7IJG4;]#IO/U!([AR,<29$-P)&%Z
M+<YQ,R5?GH\<43D,N%S#:1L%M,A(5$42L\H\<S&57W-1]?%P<;.=L3ZX+.\R
MHP.C(Z,#]^])F@:X\3*3^$?7Z6WK8RN'N\-0T9M@"(:T5KWMP* VB"E.3(!H
M"+:4"&HVYA"^<+T.YC@NGO<\"!\N;K[ZZ'.PV*+BE$S_OJQ$1]L?[/$@K+88
MV0 "]O 40PK618'8T(^)8R"J,?BXNC*Z8JPS5( 56=%@))DK;@ K""GX*OWI
M@A,RSMVX,#S[%+[$QOUVCUGO&E-^ME9@G+VL[ I6O,@EFQ[:C>,=2YJVR@P]
M?TO-9^X@L[]AS$;E+U+U<;X-/63=WD-XP;^V[]I_5E(<2Q/\)\70% ,@0PU2
MF@VI3N(_,\1:]9L'[V@!3PHF#:P%*RB&8(B*H.T(F;-GC"PWE4:3Q&R(%L=Q
M3>W5-;Y$C^YHC'73MW%!WC8^YNQ:?_'$=M2)RMM@%(2?YZ4)IN<&.VVOQAS6
M&\[N:LR;_*0XC@?LYX4+J\&J]6VB8"DNE ?&/G%=W'("8ASLL[!Y6-1,!VP_
MK/>BAK?.5MP)1L7@VX.H>:-,^': *=C">JEVL+?N"KT?V<3W8-,>J&#)="4@
M*KJ@_8@%^_Y <=!#WSC<IQWG9T4NY=HMHD*!-NQJ("C.TLG6C]CF-<[J!2]G
M#N[U[M8=#OK9HOLK)2RCRIK"6*4 $]?3>CJI$TO8?4@G_I-*$O_!@S4WAUKX
MO;/I&A9KHQ[9R>=V\#W,I?,Q6*VT#X"TM]''7]B&8\'>V":_!LMH-YD9_COU
ME "":SZ_O@&^^)"IQ0-<O^9KV_Y90-QB$J2&T'-6Z+:!"%9^A.'K!U:[-CFQ
MO^!K5I.A/.A4SM@,MAO9^H([%MR7C9\+ART,FK=^>-/^]42QO_ ]&8>P9POO
M&4Z@!,$SJ]OA@T%S-N]:Q9M50U:M%1PWED'7;Y $W[F0YWTRMU]AG23IV?9J
M:\@-30]2A[>?-A)83>_Y26G(%><I82*E%_UQ]LVTL1?<^\#YDYQP.(SY.BE_
M+CN=^\L?_6_#O$:[T<OW\3\3/NQG#PP\"CJ3KKA!^@8:="K;-((2I.;' ,Q>
M?JP<P#H(E#,0RPNNL-X9[$5@>7['?G^0\;3-0HT$FMPL#_0V>]*P2#OV5W Q
M]7<,C^,_-W>L^@4P[%C!3D4W"3KKIN_B"'#^_64#Q)XI TMNXL7^#&ZN6,HO
MG+J.5MONS._6^TTO\2;)?P2([Q$@@L*/$8,I-7C;*#:RS3GLO4.^!%OK!TQ)
M I#MKS<9>W9W#!\B>.P-&G$OUSH%!^IMX3Z#DOMW)M<.OQ6MN)*,7 NV/\TB
M0?439CD'.+(Y' DBOL!;T^P%^I'HT7[D#0 NGX+L*B7 9&*MJ'ZP+]Y;O=4
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
MNR]%[M84]4(H2MV M,Z//C_^R_,H#8)*28N'_1Q3Q*+9D.S=LQ'^W,GU!EP
M>S8/_[.)@7$3NH*1%=B;'=H4AZJM7?*'8@Y-0VFT=&NCFL?^K7I-_37UKZ1^
M2VF81NO>JK\X"X1M8(<C=+EAFLHF-[(WR;>OA$E?'D>J#5V3-[T;U21<DW#5
M)/P:S*0)^5$;2;6:^)K4Q$$XK8V>FII?(S6_/"-F.I7.&>1F;<#4VM_^:7^;
MW"MJHJR)<DLB_]55I7PDUXDG^&.>59;1P<]S6-J32(3'7 OV'?.78N$G\\/$
M7<1) <?ED?RE%.J%YZROP:,1Q9J\(GC,*J3P!L/CIK>/@]N$UT]I+>MRAM\=
MSO"Y&0>'3D%V6!V-*+X3I6_XK& ["_8K&QZO7 4,0L*UZ(0P)Q1(%2MA)*$?
MDCBD&RV2\]C"C^S3SL3NK2* =)U7$@*N)4F21<PPVHMDD4TBSY$MXY&D-XDL
M:9'#RMI(TWDX<<1B:=?.W2KP> 8E#B]%Q'<.5(*YY2D,!*I&I01]PU,,E2HM
MAWBR[^C4EQTK\ *'NJ:B4ME7U9976:[D<&0?=H;#T?GGSJDT/#_M=_OV'N!S
M%AAU"7TB3%AZ)-(*R\>"9<10UX32%%GG-HJ_937?"MEJCR.FX\*6\0+FP,[>
MG2@HP]"I;I!UZ2&9(P.S'&L&N,&[R4 *$8PCX;V;1;-#?N4^WPL<]V?U\&%L
MD"'TJ9/V:<A[C;T9II");*;LV66*=I_.4#&?+\U1##, _43:%0 "=!YZ$?Z0
MCL36M [F0* D%<I9%L!#N/CMS.-0Q+(I>IH FPZJ<M0N98>H74H1M0O1HQB<
MP!)X5Q&U2R!Y[6B/ .;)V80)?I;AR1DLYY,GR(8&&Q9"\"\U(=(Z70+[2TKW
M/I6NPUD(K(HYH'3.B"BA-\@GL 67ZMVHA[)RX+T_:+T_"-\?=',HFU+!JR\E
MJ>^W6KZL!)[C&2W5T4F@.*[FFXYJF9:N6&W:#N3*I/[Y\?'A4>>T,^C:TOB3
M;4^DSFC4&9S89_9@4@E,BQ]!N[BA,N@Q1+N(@N#0)5.V<2=7E.)&'V.JK@#-
MR'#*UD&2\=92V"6\-5C<+#+HV'7((_G6#XJ)'W*@W +4VLKKH%'0V8(RA ]$
M1YHEE*F0R6+*16X$VP,C&/AY&L*N D_>-;("I.P9^(EAW"(PA_@=OD:+N*3R
MI&AK##YD]ITF" A5(D%=;1FJ;%I.8!D>*!Z:Y;B$RHZB^T:@&BV/MMJ5D6 !
M%OS\F*/A=KJ3"]!"SH].^R<;KV[P&-REJ!A7@!X.$P'F74*!OJ*$H7NG $$<
MBDIH]P@R"!=!B(;"DCE9$"0K$&L92M8:F+Y5R+4]Z-$BR=#).V#XW*$<2TV=
MGT&PW(<M4-OA%JC]*L2_:<AFN^6:CM9NNX[N>;K3]@EQ0'W7K !4>B);U>&=
M(-))5A($V6GRR9:68/4JP]Z"316!X&Y0(OLT@1%Q&RXMUKRLX&.%)M!]0>3[
MJ\ITE:HH886K \-Z?]!94^B*Z<Q+,'+++\U!RGV& Y$"KTPS #D@&*0*%+T?
MI;-8E,\J ^M)!]TK$B+D?G;#?:2][%()<J]$;9[KRC(-=!#<I.7HEDX=TFZW
M'8^00/9\B\J!L4N<R[/^ /2$SK$]^2KE<GM'4)8W!?B-LH;E M,IFNJHLA\X
M>B C!I'L.:HIM[Q UF2%5E>EI["]%=%!D3%']M\7_1%7M9!9!YUQK_/W5F;S
M/DMB>=1+MB/YK(S>#WK-5=\@CJY7820R-5@ LN1F,*NKS@NJHSP51BUWV4@@
M^N/%-8*MH!YW#:I; 8;Q*IKZ@A%+I=;A^RR2IHC)!RK.3-(T2?F@_6_ZV.KR
M[BO+NO-6OT>B8!XTCB* Z?GI8(NSX%*/8-$^/O:\G5*U:<1IBK.J'F* F=*
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
M%J8U6(U9_*4;S+GJAG 8]J-P'*[-?<&9O3.S=-?F.*]S55>([@\1U>8\K9J
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
M2E])5F)<I^1LICQLZU<[\BM+;L5J9B/[8@7B^&<^*^[6!^XI\F\CP=(;H42
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
M.C(>Q7/7J'+(H,@R #>HX6Q;1_H[KE!L#EK;"LU<!+]W;0F3PB5I@%_9J)V
M48(U0KFT_5=5!W_36VR6PC3*+T,P6A!0X(W9 .28V2 ?+:(K&2@C=!P=Y9RK
M0U*(CC*TM@/0AP0&&F>-_3:<&C)"!OF7=?;;N,ZTH):6?_FE%>:G:(>Q(M'A
ML1?<NZQ1YWU!L0J:X@D2GGL&:N%O.RQ )W:=!2D[TN7 M,G^M474*5=@HER;
MT[,HIH1QHAT-@])5^D9\F=93>E=;OV;JI*P3P;?X^;)E9M?%Q[_F5M[P]?R:
M?#W'>2V@GP_Y .%5J,)34I%(K _+#4G81EK"USEM>I$?W$FY$92-H(2OL^\J
MGDXL.@F:Y:VO1]I(S$9BPM?95<04]^^.CGVLQO/J;D1F(S+AZRAX^I11$V@@
MEM(%9B,H&T%9+2C+*/L3!<=MF$PW0M-^G3<,W=7SZ*V%_4;[CMC%,IS^5/K2
MV]E[[_L:CC9@.PBIMYBTOH&B (108X >>.HB?PACIYRT:Y:Y+2<'-%+/ "2+
MCD#$FP.$$D[F@9'[,\[3)&_$>7K1 <".L&R5 ! ([<+$LY2;-@[,, ;75KNH
M#Y^=FT%74WF(7]D0)7TEI#L%Z"840UX D6*Z 1>/9963Y %G/IHSP 1I0>&.
M>WCG:J&O9I%F"+>R,<)&*-''Q$TV%7[(55'YM2 P;=;)!F@'Z6R[D$SP$0B"
M3*H&"UTIITUQ DUM<THW.WQW\S/QYLM<:2I:)5/>;'/$>!9-6"J%=) P#Z@J
MPP(0#W):JF;EE2QG&'@!</$L_BSTE(6]A1E]+1TP,L.D]!R*RVRC*](\#3;/
ME:R?MD+:YZ4=%)BT1C8"RZA0.%5")/)9,YV2T+:UQ '(.($9XV!KEO'5X^F1
MS7IEZ?\N9#QKLG%)JDN0=!7N,$G46(I(2<N-&*!<SFG,FSUR=;1* -S3!L(D
MV/^D8TFR[EH>S;55XS91J <TCEJ(1@O:4<8ME#DI)+\!V Q.LW?T3::E@'1I
MU_/9 752%\U$3\<=F*@HX6B/R]:[K&S")%WQ#( 32[69,(2@1++'VP-3[F(L
M &':VQ91'(>@1JZ55)&4:K&X O:FLO10%9<7.'+4@,A ]DHO^C2GF_\SE_%:
MQ(I[1,<77RGG4X*]B>?&08FQHW-MUOA*60.]VLBMH\6W!J9$P VKR6P% "2E
M0F>P7G:C<;(;0)FPTM\9 E<[R[^9_13-! 3.1$$[PB%*FHY,BS+(HF&=,8M)
M5<D0M?!<RZ'E'%@6\VDR[W&L1Q&JF&@LSO+*P$B2W:"S'U"_T4SR.KDRXGD*
MJJYS)L.2JY%\+U;"E.W20".3L<]&F%J@+K>Y&KG,[!->)MK2(*RRPKX@2/@
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
MV/80*D-5/B>A*:O?'M)O7@O;'GJW!0U/&_XP%TL.L"MC3;'3PR<2#I&W;J"
M5G *#Z#;I/N>2MLL;+<7B,T*5ETM_8Q C %OM'(G>")$<Z&H2%=L92HY,RY(
M+'Z7]HUHD78\BA+;BX8?;LLN;2/4C8I92HF&F4G^*6TE#;:T$E+M;Y%\>LFH
M&/QKZ6O)EW+<&2G/X_V/>R?1P<?HW?O#-SOOH]/CG;W]OS#?>86WN4FK"=A"
MHY/NU](PMBJ93 ;QBLYC!A^ZU QMKH9OG92>%*@7'6,Z1F$)-1(+-9BGQ'E=
MML%15:D1!@7J!?V)49WMPK9JSW#L,YG/@]W;BWXGR_J,62:Y6U>6DW6-)%ID
M=0?[I[3U)R:?YZ !$E9;##TK;0!C9%6<S(^K_\%+5)@D>^A(:^D5S8^96*D3
M]-Z*Z0$#/I '"]?_RX4S.(E%YS3(.[6AZP0DP<C!B$.((BZ8]DP 3&=6C20)
M1YOB\5@B4O1V<&2JZ4_!?_P:^??^)O^^R;_?Z/S[CBBTCE6AHGR,(+$E)S"G
MNRM83@HJ:VYQ2?]?Y$52SB*R5DW8"Y<L=%) VMJZ73YOPPLS-'+GM(\MB1+#
M.!Z=21!:C:MVE)4&GWN#UW(K]2R@SNK$>"3U%O;H.=EYNQ^]+>*9X6@Q2N8J
MF."% -I/F&N9G^!O%+V3(^E4PKW3>#:7$&B#!,P"'\-4[EI5!7_N'JY75+!4
M)M1L[M[T ;[:W?WDW) X=Z*/X$1=H/PV@UO>B3Z8+\DPMY[+PO:Q<+QF;#,C
M%E1DX%SM+/E?NJR6P\R*BG7L./\%]VDDJ]GP'UPOD8[Z99ZK%?=:2G?.:NW0
M;;MNP.7C ]8V!76=5"#[+%O^X9:_, &2H"UOVAXD#-_3+R<D5Q+ZU0Z>$OEW
M8 26F#FBTB.;ON!VE6&>SCN%1OS<,(1>#V:)H&+T,AN;#G9=Z%]W_(B#_1,&
MZ!V$!K+]L&5N(.B\\5CNO;Y2X8G3ACS;KJO,RN8]-IV_2M([*VF(6W<-56YE
M<^V1 45EH@U48S$J59 Z;<E>D= )8QNA[(0J6:C;6*;GG%%;W3XG1$AU2=*R
M,A?H.JC3)1HMAJ?P=H8H\Z9LLFHH:W3$:$"P-(SM2)?B,MRKP<U)W<$4'CJ
M0>-)\ 0X@V-C4@#6C!+&E3,A(BG2U&SZYH >I,$(Z+F1MK:WD2Z+2SU]U0]<
M=19)?-J!GUJ6@@LM-H^SUDGWE=-L!^*&3MR=L+Y;SJ:@#,\&TZ)S3>HL(EL#
M"S%:A^82>GMRC34OS$F[3KV)2^QR3N 8T,M8XI=*O"@?92@V48-.=K*EV)3Z
M!1RP#1Y.J<M@UI H;U2=A?2<''8,'OJ&#J6BMM@I^I%$*L_!DY$F[ *[MM.:
M&W#1TOM<&"%TJ>AZ2>Y%%Q @C2=F&LP+4$$6 /% 6])8EL[<^=D):>A8TQYV
M(CQ)G-@N'8Q3T'2A+O'SFF2" D.>@_Z[O=5_O%$?]U[_.4U2;:."6FHC80>Q
MUDN6J(?.7&L(:4!/-X\!E\M*J4&MBR$K"T]'PW\.ZH7#"9B4H[,:ROF<Y>=J
M#P?8/?2$DM,", Y[*D;Q!/TND,;($G55K,0K* *[8V#0)Q!2R9!5^IT[H:36
MJ!'J9Q[G.I6Z([OC/!5ON>*,REN T5!GLL^6BY>&#B\]*7^.92#\Q#FSJ77:
MM^%#W=KR?.'YE+:F1+V2-#43?G3XQBCM%0.=6[#XX!IVB&&K1:A)9*,^U.S%
M''$YNA^NR% "SP1"9I2 8T.:5-L, ,\&G;AU95]^%,_H^\WN(;>]=)LB0N!Q
M*+ZVX>PHAUKKP3]U0\UBV$?-*3[GW<?Y-U&V3#)7LM?+9:@9LXA'X[3^TEDB
M16:(J.):/)R8;"R201B>'?H=.8S<CD/\P'$RJ0NV277_M%!$T?V]HY,'3?8F
M:3'3WC<\<&XVP]P-EMT3TI&41<U.?^^2)R$R5?)?7< K&?Q?UPS^59ML4 [9
MB@W%W(-TGA3"-"J*T(PV^ J(?"9!A\]DGW&$JA,I!1E;YQJ3L1F%CHU?63!.
M4\.'0&M>DQ"N9X\26<JD_-SQ# D64S\FV[>$<T"F9RYD_HJ'S.&R*0D:[S=\
M"0-)  XDLAB((H<5!=S(?;"OUL1O53BXI.]!E>=L=<FEZ'Q5R5FA5)$M,P0I
M#?47'PI; <ALB_RS!:O)]@\9Z!5]+A/VT-E9/HR )+R;UZSFEH^L-/0$Z43N
MO6&7+JJIZ^&@I\#]:5Q@ZA :$6S*@Q8PT7G RY^+&/ACDHYFFIE% YK,.TOL
M09U5'Z9AZS:M%7%HR'$>65X0R:-P0;5D^9%LMBD8?;O  UWMKOO(U$K''>TV
MEA>]L<8--3@C)WF&BA:&9#*M,3\NS<51#5?;"J[$/DL7AF.15?ES:%!?;R"B
MNSE8;T"2^L/AFX/W^]'Q_LGAI^/=_>C#SL>==_L?]C^>_B(ENI?).W\%OKU.
MX/W#\8>UJ!IT0Z&Z@X%,-O8T6$A5FRA6%Q +4+6V61YS_Q86?*FHXA-M,!/H
MTR;*JA4!$;P*\AWT(9G622E1+X&XJ&8O@S0+:1H#/3GD5B")8XWQ>"OZL75'
M0JW:JKMTQA>[+X9<?EH4LORXDZL?<G!&RONN95U-::G%T1.#J<,DHY9/XHR4
M)U,/SXV:8'AM08V3VS870C#2W2LPO&#L6\S%"0L#DIP.#W,8[(_:NE+4)SC,
MDJU0)4LD'2UCP,-RAR  L8QR OH()B"CFWS/6]M$W'P)S^%FV_ _X;6),:-2
MY3H;\?@^<IO+'1HN;4%^!XG%=0+.&1KX)M>_;JY_>Y/KW^3Z;W2N/U1#[5*K
MF!'A12XUBTGAB<A\@S3U?;@>1!UQR;*Z\!*'TISF"WR#X!BT2<Z-M2G&C,/
M39D43B+/OL16HGMDHEAS0] 9MJPSQ#FTUE3]'[@.J$%#2A"+TFK/[CH'P"\H
MSH*(H/\FKQ$6HN?,++Z!'Z ES>#J/I+>"N*:H7*K*_W[7%5)PSD3+&_CT6+(
MH6%:+FD^/L_&"6H>X&PA$[,SB_^MOMWO>(D]LE?@UGQ>>BW</.'&T1D?YQ!Z
M$U?:P4^8VEAJ7?\7HQ7TA:EHR*MXS/E8YXR&6DB%Z1H8><;8;EIMET^K;.E4
MMZ4Z 5FP8+W+JNNCS7[X09E.:$KA)1_^,R<?!=48_G)U:4U7<B8VIJ3P\(JK
MO]S5O#+DNX_R<RG9M-F9"RJ7LP L2>^1)N/ [/-K':XPBP=^Z]9?UGQIQ4N_
MY*OLJC#0N"PM*]N6.'5FI5,LLW!T8Q<(<4]:QR(=F,R,-VS'?YW7_&[_X_XQ
M([KA/6_\8RE#^QHJ0NI"L%OAPN%_-6RJN*5HN!BFG%J3T'1<<EPI<ZK35W=_
MM24?I_6T@MEZR9E]2)-\ HC";SQ4K K'T2*'&\,'M2R2:R(9 LB*VG9R7( P
M%1D-]X!QBHZIKM1:[W+!BRBYZX7OX6JU+?XZZ*O)=^?@&U>?E])G:Z+O>!%*
M)O"ON:BN&=WC \FB5SAJV,$:.O)P+0^G,\^<([MNZ^":O1]]=#(_S_SG'3?Q
MEKY#2@@[=+!HJ;CM*JKUZMJ%(Y (AY^7UJ%&$/B9C=N>TUK0H=+5M^S("DOB
M)BZ%/=NUY9UR:]7NW!I'J+JI=.VU["!\G"0%$$A-8VTU&0QL8A#[G4\M?B%&
M3U-+C[$:!&3+&WU/MI-$0K,S8_F?7"D0;ZO@>2N;N_%A5B4^?")5!M*[V]<N
M:I*!30=@548(F)@ER6W>0"?-WR?H_J2BN&COW142CRVC#T3364W)!V^*2E#?
MS'.IR9REK#_!\QO3BB!(\AEWE2).K;&R+6[=:UH80-9 =UU+!8*_\(54O%VC
M4K>.LGKU_> C.,+X6UUQ=\67B(_!R)ZD^KU<WO[RLH?UO=<'I_L?HL=\EH:3
MLY( 4YW:?K_W[)G<^1(4E!]WCH]W3@_^V(_V]D]VCP^.3@\./T:';Z/3W_>C
M-Y].#C[NG_S@L_SFL8Y^]1!?CXA4[H;@RXTA)D6KN,LRDUH&W,,SJ$MS?KW6
MW)\"^W0D64O-$SL:*=?,;I"AM81- ;>&:Y4E$157'!V$3SI+'#L.B$N/=$YD
MT&3+PR]Z6G*  Q-4)="4I-"%<B<DDV@/M06O@%??L=PI1G/<(19NA;OVBCO-
M=[B+-4CFM%@:]#:>IX6N0N2"KJI!=2S<5HOV80/FYX1OJ1"2I23X*^9#;@"I
MW2Q9@I_RHM+M5QZJ;&AL&:H%D<^0$,4J-WVP\'15E</$T*Q..$@>LOL$?$3!
MK5R3H(U+*'Y(DR3$!4&:!BF'* 0O),0!L-V$Q(>-NSH,5IJ$EP]\#P&=2B?D
MP1:DVC)C"1/?]:+#QOTDV](43)^.N1\GM*5(/F(FKTS$!J^*FO8)>PT/0G#^
M<CKG?IBW2XI15U!/*V !'>=FC%%Z4SB,OQ5^A6P\:)+!7=2$K^/C6)U6$ O;
M6]*GR^.5-NFVVM3&@T.,5:"U0 IU)@R G4:US==J "Q5F50#R_.K ';-^D8-
MY+:+<J=YR'\5BV#[L@;!44&;AS1Q&AU9;TK:%YRH/W7M%D(C;]S48?."F4[B
M%KQ<; B^GF-:R%>/2FT:E?RK;N9P&R?_*H1N['23=*2CITYU]Y?2Z#'HWW/8
M]/I;I'LMLKIF]%0Z(-LVQY(-@C.'YH/&>J^NY*==?K=");8+EUR?(GZ<I^]#
MVEL*"MZ[6YSZ&3VR;"T88-F.:SC49&Y1D[:J4&>,^YTI>0!R^H)NR'+)>6S.
M[+\JC/O5M;[>77XE_._7958IA]*%984H?:G36JW-9Z!YT^KLLY LN,&(&<1.
M%VL]ABEVP=I(>S9N>B<7TF:*D:%%N%Y)6:+1#<9D78S)HPW&9(,QN=$8$Q^,
MMMRSDM((\<V]Z*#2,WS"&17E5NV$6=J.[<['ASB7+472#@*NPAJJK!"K0+I>
M"SW@E6[SBQD,*Z4XF4VBLAB2%U).OG11^KO5?]3_8KZ\>#$B07S4^^=\<@]H
MAK_?>\<)F.&]K_HMJH'ZS_J]9T^\G[+]O/?$1IBOZ]5NP)1_KXUV[_5'.?JO
MUVB"O>Z;IBEGBC>&[)@NN=4>/]]V%I78%V(H>: )2F]LNV1TY$5&V=DDG4:X
MT#<1<7J%E4\)JRGHX]U_NA440&K11,:]7J9TH!9P)C@133X#NW#( #8<M*1-
M@]\,*BU5I;J@#'\IT9I.4-02,E3C=BZE;UVJ7TS]?/]>. A.G%OD15RF*DA:
MZC:-:U^'J4"%5'IG2P: )1*58U)8*15 '>4 -Y;IV_,"V[(O1ZC:<>=Y0*K!
M7#0>E(BXOT00M0+YL\LQAS7(6B>)%'6353Y!,L!BS99)]I%3H L4AVB"BF_$
M\.M"Z8@;NR6 9(#3A^XPX:?PT)<+JS:;ZIN;RL9+_I($79!;8[&"5K?EE<G(
MQ"*38[+/X T)+F,9_D*FOY#\C_*9M&>8FX)Q$KPYZ)RQ!"3V9<L>$X:T 3Y,
M;@UI]2@E8!Y,U<W'7:YZ1(EH/)R"!Q/&NO#K[!S(AL/FD_,"S6\X,FYSA;:[
MAR)-&HF[DJM02.8':8,ZJ]03+80Z)IDCO[(5)/# -G+^#3G?"<(9URSI-FKS
M[OU'!Y 38T2 ]V.X^+'#ZWIF9:%&L3FSP!KQ[Q)T<:'[Y-6\2*33L)PHMJ&2
M"_6XM#(+-B>" /LZ-X,@Q>RZJJP,#/F0]$;FH,9</#H,F(5A=UN,U>P%UD:7
MHR\,.CL,4*06$H\W^Y_@$NY_HI?8+'_@<\\,%P6OS-EU_&G+=7W-_)\.3;-V
M7*C(.3Z+9Y=8)U+B#BJPW*NLC9K7+,+*YCC(@ RX]X2DAO  '.FYD.S%Y<OH
M?O(@.I;6,)WH@R0Z)6]TZJH>7]%5=-EI,^WK.V#S]W3!OK/ 3RS4D DBN6%,
M*N6FR=F#5GOM8S^5ON<UV35T(;:T35_10\[H&6\XKZL_?6MSO]&^S[=H.VZ9
M6_H-_:C!2QG:N=')+=EM%>L1"?W]_=[6O6A([Z"A//=W"9YD^9M^4=#_C^QC
M--;UW /E[& >5J/PPC9O/=X%Y/7GTZ0R73P!^<KS(IZ'2='6/7]@K-H&58-/
M$(:\8)Z_<4J1L+O#J?7>M^(-?F)2Z5LZH#EO#R%=#UDHKRV?SSG]YU=W&+_U
MIE%9HU@(#">,D6*#(@7A73?-\[D_/,HR'R8<K!6JJ#3.Q%ZUY"<=!89) ,.D
M3-^D2E'/"6N_,BYMO"*$RR>=%$AS-?7(M3A23]-U)+,G0,"2&10I-FH1!5//
MGN>X-FG'%:,S6 ;GC6!:)+<L\R'Q9YLU]ET=IW2L&(;L-XONQY;ND,Z8_@/G
M3 [=/)%"WWY WC9:6 :?/7H0S9/AYWK^<&6E'5WQ^ &B07.0W$DEEZJLR+5E
M%<#.)FVV;MKL\29MMDF;W=RT6?LX<!J/E,.3!T&<6XWP+#Y+)JP^Z(*G#P+>
M#@_>%>7SC!15G&I(&S>9PD,LG5LAUBX;EL\?A+P@39K?&VY,7N,*/7G\[=@!
MC@<V+U;CZMQ)ON*G(27=1?]=<>OF358]_)JLKA-W*A[I"?CR2C-QR7==LIID
M5,#;),-5=_?IJA/>'M9F*HJ$'3<>O2FLD'W;*KO44YO9K>\?=709W"3MW/7F
M),CA[=#9<SUS\-=LW[?(/2P9<%+.CBX]#&=DHTU[*/L QR4EQP9*2A=VM6AG
MWZM6"UD3("GCS.1UF4I/( %*LB6)$)_YG(J)*U4'^* 9<_'5M%/L0S(5 C(&
MM']$_E5208N2\Y_2D%U8\$![9^LCAXV\I%1<\&O.\XJI%%)I31 /?<<V1UID
M2CA023D59P!)+)T6FU3EDI/2%^K:ES66[-O8I(SV0#HSV@(X;%F@\'3.\X#
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
M=*C&,'>AM4JR?=OA#)EL81#PG6"\DF/8%H_<-H6VK]M(^U9Q^;EL]M3BJLK
MBZ-#I>"H",('M))%05_3*#*]/Y"\BPX3% IKWXB.F$7I$ZWDLB5EB#"Q*JBY
M<GB+<4HK,$@73BLWTKE%G=FU84^THXH5C'^(LN(Q@'39#C[1-$<](XWP+*'Q
M6BFPCB6@M5_L6Y+6GG"0)I!4J\!9@D.9"[+@-T$A_1)J=)Y\22*S:T_HX-1_
M&/WI3MKE\L6_6GM^9=RKAFTKEY8#FMXZ\1'-G(Q<[JML"XD5<R 5NCV&[6L_
M>XX63LD9(,N@; AZ1*:AX/(MB6D5[DM7Z\@$'U7>16_)>L;E?5XOJ9I*:4:,
M0YX"BB+@!^XLPEWO-9VB Y5&*D,3MJ?EQH5%?BXE6EE90V>,#-<;XMC)9UF"
M9B 964-!8\J6-A%^:TN7%7)7\T3YMS\W YX Q7>D4J2@K%HQN&+H2457>KHP
MM8K2Y$CG4E;&/E/DK3Z<7&1S*TM,0&*C45J[Q*I:%MEPBH#TO[58 G6?**<.
M1^YX1>UOUSIKT&!1J!OU-).S_"P7](M5=(WNJINP\4\)&Q^9G,R3L_SVY8/Z
MO?XJ;>=>:#E@[-VA%I[2;\60U&Y5/:<J#:]> N<-VYC\-.QN+M >A1MZA1;0
M[?W_L_>ES6UCQ]I_!34W2=E5$"-JL:3QS:V297G&R7BYEB?.?;^!Y*&(& 08
M+)8YO_[MI[O/ I"29=J690D?9BR26,[:IY>GGU;3ZZK=[4A,270 4*:&F"\>
MI3J*Q=:T_<R#Z!UVK2]EY#)3E!1&Z91\Y8N1P^MYH!JI1,#YXP^2*]>.GK?V
M/>-ON=2J663%S?*KMI;+'=_4\$Z\::K97=G3MC\KJ@GSBG6SD>%QV I3UD;+
MEJ'(9QAO4F;C]$I(8)X$KHY% /'06BK6RHDLV1@SH64!F+0#4&?BLG.G-['1
MR)NR!12SR+.#[143,0S$6B ;F[A>=#F>%D?&XN&>.+'=(#H+NCN:;3M8M*36
M$P-\1A>[PG"-Z/?*IAE:X1F'54^1K*AVZ]A6<?9\H8_ETM(S?KETS2#V+/A
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
M,2 L6TB^+2/VN7CW2=EDDBJCO@]Q+;T[>16=?@0D0[PA+PN^"5^_6I# Y(O
MKUI,X#HY%4_4"0)/<?2*_4"_%*1'<;'MZ!CGR#+4;F,WC4]9)B'W)/:/(<6[
MR**3]CB_;!@^QEC9HO2$8_^=7KYM6/=-;\NVOB_R"&R=\V7^C>'IWVUHWG&-
MYHY3%8;MB W6J<-)QRW;COV76^JT;>V%U9&S,52P?K/?%=NWI90)6 *85R?T
MR+Q-,G8.</IUW%;"0IRIGN43#]0(U2ETA\&FYGS9=5ZZ!H:N7*E9!J>C"DW.
MY2/Q%\@>:F1!-KW >44>)NKF&,#_V4SI(REH;2+CBUE!/4)9LRKV1KC$LR^'
MJK4(5TGJ5DU6)RPK,W/.\3B\&JU74F4E5:6;LF6E;#H%I)C4)ZXAT1WFGQE:
M^<JTLMZ(PBNSJL+J ++^2G.>(6<R-Q<Z9_3EB*9QAD]A*E[L%.2Q$ZX?:*3G
MJI8RU 4CY,#2/)+J;+?+8))68TA?TDR7IJ15GV7LF%?Q3J-KJUY.4YY*FAB&
MSKDV]QK<S4K,%_^@/<9VPVN.W9S9V,T=%:'7Z+G7CE %&V*TX50YEP_,9;*S
M9;MX5&;C7EXI7./UZY2+/2?Y6-57BO1V#(RV6EVF7!Y6".>"L!M9>?!MGCB=
M%-89^*GAD@X[IYY#ALW8]%PR>?_3J)5)CTOFIG91K2PY#RSEP.Y*JZK1S&=(
M69'+_0Z^V1W\S[1J:%I.W+3<^9V[TF-+8<[\ &H >=^1+L]+]TT8KFXI_B%!
M:QQBU"3P;;IY^A5K2HWJ,?;]/8AF4Q#-7@^BZ4$T/Q2()O!6=C!Y<VHA(JAR
MPMID^Q4"$5=U81**I0\L\++EUJ2DWN4M5W)1OI]FQ46;7ATJMHA!E5AC]6R$
MQ9&2_K1>)U>_2_SG1&Q%GNWGR$!MIT^_+1.IV;,2_?GV,[?A_KV1AH'99^R&
M+JI-,K?:>SLOEKZ<&B9'1T#;%F4*2I)5]@1W/]H]2K>"I*:+30M>&S[/UWFB
M"Z;I>6-KP:2KLSHQ9)TO+:L[V<)A?=5WJM6T^U%)(-B,H:10?\<S3I:Y7HN
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
MCI6;&5Y"RIC2@&*!_V2$)V<L6)RKXW_H2RELG 6^WV>!]UG@MS<+G-[BN*(
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
M"HI5/=#IBR.#I2]]EWB[*GTQ"]6<SO4/:5D(.2MN#=30-)^6"0*HS,@:6Y'
M2B56=9JG<QK:MHJ=SHW4(KF Z,R-F:C4&,,E7*#IW.;YDM;.!#M[H=J\BK;.
MS,Y)^HV@Q&)H:-</HM\K)B&<0<+JZ,7RR.3?19F*CY,^5Z:SCJXQ1]1'ZJ&,
M,(]64'U]H+'B)TN6+V7">LD"4>%Q-,Z*9M(9,7Y^ZW?W9KL21L;D;D!I]J$T
MA<,I MLM7' #\Q"K8J,U[Q,:<QYX*Z6@QKCH O06A=[T0N:G_['[G$W=DF1!
M:2[9Y>%&6K-Y:>\WY18FKKY T[;FU!  F6B6:.V!<)0TBG>S-.,S14]:.G5H
M+?MYDTC?4G:IG_BYH8-IPOLP%J&(*Z")J$0@>TR.3II>#H=*$Q-6H1+I5ETF
M#CMCI2($%AE4*33S=3H0"0#5[[V0&U$C6;&@C67C/VZ/K38$!@ 9#)!JOM/)
MAR3->*7K +4V\M5#68UGM#6 & DA;CJ!#-X*)W'=.Z^0D+SCU;I9V?+]?OF?
M4QD:T=+RHHZ6I@[&&%+=E+".V@..Y6?CI#!,_XVP)$TP7#\E%J1;9T 7B>:E
MLS3"3 >P+WNE'@5D]L*VH\EBG;%"M+$.PTZ>J?:"Q-\,V\*N)&P[$W8(VT$[
M$W0%6[2?^Q4G@RIGWM!KJ3Z=PR_P&;2B>"Q#K)NJ:%L1;(:$;S0?S;B!KBUZ
MBUL\US<W'ME1>Y4;X+'05%HZIX[P?Q/+)87Z+E@B7KFCI56.O.-*[)#S9+R\
M;(22,=L_$XA8<;E.<5)_X&@N_RAFEV!0V6 0IV(N ?O:C963HT'#+-;7B[/=
M,"+,>J/X6JR)%6RYP$$;O!U&F W8PQ!G]XYO)[6.-'@R1K%Z5<^K6F]1JNYU
MS^;3*YQZ[\JU,V]OL@JCXD,]<)K]MN*U'1?-@H\LYRQ@!Y.T&WWW@+ ";N\E
M:9;]AL>&A["=R^RI?@EGL+=T:/3S_"H_<+!>VJ>IH&)PA,@ZBMC-0Z<#-0?S
MES!:9URRI+8Q/2LC:'771>G<)CDMU09>I>(*WV:P;VY1-/YVM.('PP0<])B
M'A-P>TM5W*$:5@?7KV%E RY%?K,5K&[M\7F<D=4.I<LA)YV'?^*2HL9^V")V
M[]=:G,HC7%FQ&95%TG*%DAF5UO97OKAD6VN<+"10QVJ4>,+8UVR/[);UF\(Y
M#93+S+"'<T93*G:<BYZQ@>Q-MC)9I)-.F$Z\UIR"A7HKXHOGC+=.__R)K@!
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
MVX=_;V_XE][BC)JX'4X@ 5 S(TM'Q/*T51;>M-YB(^E[!I<@O/259 >(><U
M,7XN6V56(Q0A5P52SHLV%G3RH-("XCMLC="LBTG[X23<Z<7S- ^88QQ*$W(R
M.@<J/[?:?OB&@1[3H3R\LOU.X,*.O4S0KC2[)6[7= %'&+Q&[- =%Q/UA=GP
M7Y*=(VM@-J_6QTL[21&PH/79&!+$Q>"G"TZ/RIK531Y,G)L2X%;AY!-K%AK9
M%*@]HVVONHUWK)K@_*'YK208I6>A/]MH8+@UF(ZVT6^/7^O%GX1A 5ZC\@!Q
MLP9Y"1:?6 <J@&6;:1_P'+BSCV%$=9+A3%]&,Y/YE6,?Z-T<L.KY7L-D2RM'
MNT<!X@$VE8N]%94>[1))9:=1H")(KD9T"A2ZPZK;%K)#]4M7?M59^OIP/V/!
M[!>ZJ&0'MW8)WFHIH=Q.;:5S1_*-9/6U6MQ9+'P3@^Q:&%J;(M?=GQW,YY4O
M3S39AN07/:IWB0B?*5Q_)$7@]75S*#J@"V>$.]%+NB  #Z]G['V5'$#I?#='
M"HE^EZ0,:[4I$>(T97I@]>[2_IQ.12]OX+3FVVAN\RI3QWQ7NCF(;,N9NYJW
M37+$2FB%T;8\<3XG0, )),#-QW'6L,!2]VT0^W0#I+S#-JQC<?VKH4LS:4>)
M.">L>X#2@E<G2O3>+)WOH^)3@#, J-%;:/32]J8*FJXYJ;JAER[[M%@F&4-:
M?58A4P>+:'%N&FJ-Y!S@RS"5KN+6]OM&DL9M#-2G,,-MC+PH3N8HBYPVAG=V
MA_'$%2([^PP;U6ZM2DS4R,R2;&IGRE_.R)@\5]'I8OGV@@WR GB2[9'4S384
M[F#?8ZQB\9W1W"A*"4E:36E#%K3^&&I?2!Q >ZZ"FR7))T=+0].B;4H:NKGF
MK6N&9VVW[ON2[GCF7@#1KDN@%=#RCF]V5T#!P,^2H.O!:CQ'(E^MJJ4II)K_
M#D%&XH1O1@JLN_,RJ:OD\:M)<9A34H*[LFYJ$'[Z")*,D*YRG$!2NA1Y!LC,
M"H2G@= ?B?XRTP/):HQ^,RXOBUJRJK0HS9;-GQ=MZ9P4_G/>Y^ZA#%Z:(_N@
M=*<&9_X9Q^.#Z))U/?N,A:8DNW!EY!0\V!H2=(7/;RL_A!I^";K,XJ+S6X#T
M"L,@#M A.WX=@5) *>I@9:GUSZ$?S4*]<MYEYCWC5AL.GER4YZ1/_V'\8*GM
M*<XG%GY%D>E!WD[1L4++W7K!*:MA:E%AXX/LVP\<=[B^]]/?33_]T?5QX&*
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
M[*UYT4;/?194X.8B4%IJ_EG@&W  ZB(Z7I1I%@WW4 ,.]VR\%M,J.G[^S)(
M<[DWP3W;>6$'7"*3QG_3;5<C/V?)A*,='(>X0$V0UCK$)2M[">A[WP*/_6[=
M:?EE$<G Z\?(C^.#W\,N@ORH15+5T=(D0CK8>M*(0V*"#$"X 8XMIMGW9[,>
MRK@_<O4J28)D7'I#/ 7]:7UG3NO]'_RP/E&?FA-N=&A+31H@)&E/C+_[Z8U@
MPY,B*9G"^2G7YX0#G@^62<$%5*'\7Z,GT8,-S@8141.S@:A\V'&/,[F4[4"L
MYH:ZX1VR1\P>[DW*K *IN9 S,U'7?ZG4CV3=%.O')DC@;!:39&U41MX3B+$(
MSDS+)Q@TH45"B1=>F!%9?#V0:&,@T; '$O5 HEL-)$*I@+I>_/S7OT(_G]BR
MT]#1!2AI"[$[A9X!+94RZ3'G<9BW)^J^"HZH_?1 ^W>2SY'AI4S5SRP7G$=7
M*@#))M1SJ3K TL$]YLBYK4J96AI_6PY1:@/B[BAOV )B\M2%\"-#5Q--U>0?
MTK+(.7\G0Q(C>[HD!]06PI4GL_=44TU_CF9%COQX%NCU3 JBR3&$ G/YE X#
M,2@XSD27/@[+HG9S,KD.@<6W -@]3EW'B[&92.$Z38<-ZVF ][THWMN40X!X
MZ$*E)? ]2*K*5K0H.#NHR=GM)6U-)Q)-5/CKV@K CX'V!IQ5L%?"=ZW.LY6&
M2F!7G(G)U-3+Q\Q 0'*N+)N%/,[S>=# I\E] 3E;\1>H=O8KB+?A^K:KS'4W
M?8S871_9DT%_ER=T?VQW_,I*;6]/7T3[XI;Z)$C(BJ\C>>YU$#G/S_X1/3L^
M>?OJS5F/K^&&O3&H"<UQ&>!K)BY9O-(8$D=?('DW4&A/-,YBD2QO8:4BI' L
M8>QG AM\(U#*33P$:DAOT+87+DRT$0W64Y*!3579B-QQGF1+:,KL$+'QBA.;
M/<'7O/'Y%J]< &233H\U%N>J5K!/YCC/$6E[8QP)$$:&O0/BSUKUB?!\MUC+
M$:2Q?#(S.J-FM'&LW2 ',)\<-D"G-:U3)B53K)!C5; KB(MR.)D..&QI4N9)
M+>WB4TKU5MV T!P(#_C3I[]<<<"/!W18"M;I<W6"7AJLH2X11&2*(W*\#A'Y
MK@5%^KX-ODTC"6Z2(DC+ GU0D)@3AK%#,%S#U9W*3A%K. ?5:._\ D>?E&NW
M8#"Z]@T$4\(1Q8DO+-1B;@!';<1<(-4<>SY047VUF3!+W#H\&6.G)2247R-
MHJ$8@\]7<CA-DAY_+>"0J)@US#'73K&2%%Q7:U4I9 '.;#93/2L"H@WQQ7R
MMEJ>F\S#O3GF:4DH0K82COI^9'9MYD/ADC^CS$'F2N%B%(XH(S P:+?0MG&9
M N?T24YG#[%76LIBM:5XEX[]9!"]@#TQ*HMDHCS671!?&I)?V4IM^GX2AX))
M#MC1? B=-69;"$UR)@7,QC^=)LAYL&GPU/NFYB%WX,'*M;W)!9$Z,0AMVT(V
MT@87FT"S?3!YVIP;(PQZ']D-KWD1P=4VTB)%,])*%7!+AB(]]$!1>)>L$<CK
MB99P4%E*23DU]L"O*,IL8OU03-A-2@4M(C]VPGTSYS-,L #%"FMH/3.7P!+#
M!L5\K?F8P ?/1&8N)=5AA=N004LU9(-'Z+V4)IF"/P^D.0P81+L5)NB*SK7X
M1,.I *M!>UH5\>ER.5IKAVTZZBB 01F/:=+E06@M@/XDE$#N[SG7R#NK.1&:
M_Z&E@+7GXHV<X8O8*"UTK>"78,P=Q,0A92/#M=6#.FAPF^INN:2&U!J<KX!!
M8/TZ39V4*Z;$A*VK5<H"J [SS.7+8'LGYPERM/68B#U?)A:->Q9RX%FT+.E@
MV%)%#PB;.AF_=\+5+^\6-JLMDSR\BK>?;XDO%"G86V409.81UY-6:^W> $%4
M\E[3HFGH(+'U/#.E!MW%>_0A'"#&(EWD2H0DB5A%CKKQ(2&6S9GRRFA8@BV?
MEHG%T!C/#4@KJ7(%M7247.C:D@?*]RPXM)CVM,GL#'0QOWX#!Q5ZP@PG2WZV
M4OGUTDH2ZT5+.G5,4M) A039!K)@UVG@%'11,[AFTBJ?:5JW13N6R7\:N%_$
MN\,",G'KE#4#!72[#>2X)?.)! -\\;6J35(9X)J0O,_.(4G@XN,="ZX79\*'
MM'HT!\(E=N5=7:2Y&'$BRH0MP87;18([:XS2EKEL!JZCY<!X6%1RK/C[F*D
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
M+-7/CG>)01Z2Q1^: VL*)]?AF KP\%)$N]3RH$?/:]NAUVD_\JR'4@+/I<6
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
ML_/3X^'PW<GG#[L"AMZUGN>CKN>YZWEN=<_SY?4B%[GKTY(%@U_\*<CUD/C
MA'DP2L)XJB=_Q:7QJ'!D!1,OQE.:"T+_%40T'!]P=W)L+$)#J&<M&5(B[?>4
M\QD-]Y;YZ4*<-M=C7])"_54AVY .2@ID3"^)2T^[33*N"=PZS8Q,4& PS#VS
MFEF<2K>6-PH-_H1#QG"\4Y#$(;]N;(S"ZR+5421>(H'*<9XO1C7('S>9$&"<
M5RT1%JP#KD8K-3Q*$-]8O\_2ZN1!Q 1(IK6YZ >?D23%/"9Q8Z@QA3K,*H_O
MB=\&^;WC< I/ C?P/!0*O%0A$T.SHJ21.<AS_ TO5P1'A_]M)E_)R$+PH%6Y
M$X%-^QV2H\,[>22'+_I/CM;V2 ;OWIU<GIQB@];)Y_>GYY\&^-/]NB7M>-&W
MG< !O'3A.8M=&B>D!0NJ@A@5OH9QPHT=)8G+C0*-6=*/UV4Y>_W++S<W-_VQ
MF9%+'%APD8OAN\%Y[5.%&H<Y?H*'_Z3!\-V'A@]%_:OL:S]H7IW+O61:,C<9
MXT-+D/EZFWP_5],J%04G8Y+&:@2J$E5[#YMD0=_-8/$\]:/0^J;P:=G='ZOR
M.LOA[7'^*X:0GJ)Q;IO"$0KEW&>=P+F3<"^FZK(]*SUJ:\VH19TS27ACAR_*
M)>TZCO.H2D(>#>XH\JGBV><X.MD.+RF8'RV3B?1/N1+GO2RKZMU#%?NI+>Y$
MXMP6,6QB<\\&\;Y]J(W2$>]X2II^A0-8_[R(Z5U9AE!LR(_-:SZW!LZ.P]Z(
M]5_HCM?(#N+'L/&*^ 9RA<Z)?)G3)6SS;$->;ILA-1&?PQ.-7'YTG2Q=/"4#
M?OOG?%V)UB_< Z!SLROZ-W\6*ZJ-2@I.AQ]HK-3A&SX/7NEQ!G]/NN#O<01_
MAG!.M.Q =!8J M$,KNW ^2-;$?5'%9BVSAELW-V5V-W?AL&[X<7QX/QR>!%<
M_/L"G/2+X,/YZ>]GX$,?][>6T[NO<_##=_#X-]R[\P#BC8?=K-M>*W%4!,>G
MGSZ=7%X.A\'I^X=;'_-R]I\;0W+K:M^>#L[?P1J#=R?GP^/[Y]9HQT&[0YM"
M/SC[_?SL]&+8LGW@3G2VH?_SM\._!9%*$K&)YF?$(.F?M;>PLFG]NYY&^PW.
M;W3O(JWV #Q!"'Q?3^)O:NS:7EZ3W@R_AU$^]DJR#SX2Z'O67$<1H1@1E,A!
M;Z498;><-?C0LJ-^?44UZ-D].+5KS V77SW\G&6\GZ&%,Y32S-?-S,MX57UL
MEV[&93R%K^-4FO-L&J:P%?0;W)+OV0T_D'W  >ZZ?E]/L3W80YL8^*$/X/[J
M<=L_\B38K,1#;\H*4 ;(G_JF\@BK')QM:)CS*9RIA2J%B(8&SCMYNA[A [":
MD,0@W%1,Z#4.+?=8X793.&DC=E(TUYU8[]$4&3ZDU\YHXA\QRGZ32?0D*/L_
M=&ZT48C^16X9$=TI2G<F-KDH^%%*\7_%T35PD.+BB_,I.A22]Y9-K'VQV]YE
MD]7?"*;Q]LGC?1."+,#0VQ$6/7!X^+8??!I^>CL\O_CMY"P8?(;0^?S#X//)
M_VMCR;,+&7^&D/%APQ3)R:[VA[:CCH*#H&E.#!CD)'$AV.37(IJ'9ADN#D*O
MC6LF_ZX?#)B7,$Z_QJ4W06!AG'/M^SMN(AR+2@5\K&/B;^<X-P='N=7?EY2Q
M"YJJT/ ^Z4U273-5.(<7<Q.(*U)%G*.(M]ZD=&JS!6KS27O4YH!GH!@1.5=3
M#!I0?]3/_B=6+3](NPYQ3GUM:'2CLAVII8-=$)*A 2NC$)$;A*FAKS$IO!#
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
MI[/F6[#FS]MCS749)_B7R*=#1MTZ^WU'$]*[BPWIV9X_QQ#*! F)@EO?$_?
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
M*0N#[5$3IEF#<M>*+Y,60UV;RR9S:!/9 $?Z7DMY)>0W^)8+E;#UP-F785#
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
M]##A&H@5-/@A]GXU2)D.)DT']."8*[J&#+8J'$73[ /#BMT#81SPQ]:C3Y@
MXCX \#@L[MVGO9 B^BJAG/8Q@R*N-RVD@" DAR84'T&7G]C;J0GB8D%8MH=@
M,T7#P.T;P,/J$LJ"1[A@_04U(Q+!6(U]U=Z;>\D6H7BM3"&2X:3F>(UIVW<V
MB"X6F@EH^^B;#Y#Z-@V[D$10+TPT=T#_<!A4?[^:^^WHT/ [-QHT(YQ%<-S"
M4#%<UA1#< \L"=TQX8"F]BA; @MK920]%9C!0,&WS"\L0'H.5@091QN!F>T,
M5C85\1T]\R.&-<$C&S]J)[B\.I)OMH/6JS@]S3*7 =VA[]###<BVQ@P2%G[+
M10BZ6K<+#0Q5#+( &1N0A.#!]IN!#;?8R]! XP0R+9 B8^!L(?SM0)_!>=9X
M^RJZ+NVQ3@]$-WWX+;;&L8T3(+50*66)8K$2(_(;1E -])!EB@S6B@\)2R<>
M^R! +G!&,6+6MZ'3X-KKP3 +;1H7^URFE3T8+&T!-"AE+83H9Y8,5XR%CQ&8
MUF!E4L--OGN]IMZ'(AT*.,RD&FIV '7NT.R::/5CJ(@1T5A'9M\OM:""'A=8
MCYVZ,97VG95J[^*&B6\E&<LF]'";,^23C:!MM3*;4X%;_!'.PBXD=FB15X@V
MCKS5T,K!AA2TDA\-E054Q .D).',.R_$_G Q 0U]817$:M:-8,^W-YWN<N1+
M9[L;\:6-D1$44*[**E*V^CL^<[3Q=7"@!567\>I9TOI[K0.EE.\]+=@^TOG1
M88YV-V-@;SU+CZ!],&B_)^OC9;#_Z7[%MYR-FWLG:0'DN6A;H^%SL5U-$H*%
M$B!8S*?CO?*F;*!^;<3-%5%;:-:>]_]@/6*PGO=DE/SMZ)"@)K"(I ,\[[BX
M.#,>V2\EQ/"@^"D1O[]$[N2WN$48?U @=_(;?<:SOTBD/A.I> [!3RR Q!7/
M'<B8.P%8W"+#>VC;,4*Q/,TQ[8O$^.N[/'SBXM=T;8BZ8_R%29!,E 09)4%&
M29 '2()D(.TP6UF0C,888A=0*J<!5F4[O*%J"5)0N[Q@<"+# 8JG/KD5XMM[
M^R4^V-N/(2'3C5]H[H=-H->Z^R7X@!&/UOOP&0"A_T3V*L#C*GK_90M(:@M"
M,B"$T"DMON8(?,%: CNH[IM>>+# \B3Y9>M@&(9 <*E#8 #ORY;1L!WX/K(*
MRT0*>O:&1I2X'$'7N:];$AB"<=^V /&=I?@?1"*1B O<EZ"*#;+ZM/GF4@1*
M^/33CC5PMI0,?MD NAV<9<:1%+O&F1KHMU]/OPZT)CYZ@R.AN]T&XU'O2M=V
M<YO7_4".(=1?[]?Z4@>L#Y[MK?MD?4%67'"L5-_(D,*'T'O2L^ ?*,EKW;*7
MJ"_@KD8ND87&ZS@06WE+_[KCP:=[4[9/1%\]VOTB%-R"X%1N=0S]<OYK)VB
M0N .*&]'"O%]X\#NQTO'NQC]Z(*"V"HK"<^[M8C-=)KN8\*"B](<1V-(24'#
M!I2>8H] ;"L!;UUB#W Y?PS/IVMNGT"'-&'>DJ;WPQR,QT-3=W6"[D$#',3Q
M.>H87VORR@E\F#2UVHF%:H>)[^A\,3@A'RYB;TLL_(%2UO!!>GC8_L;W4$Z2
MBR1!5S,=-!O*PAH.U\>J.-,.KL6-A:?%JR%6)MPJ'R7$WQO1][AQUQ\&J$*)
M5H_H"C(^4<;E$<%OXD1CE'6,$MN"?.FK^E7PV%O3IK\JEP7R)DX1V630V+XD
M.IS&%5XVL4X?"J7]"FL;4E_!%P)#S1$*VN_!A1N!,')_$-\K*4E)_OC38_8_
MS,)Z>DJS?83R@=RL,"<+';H<."TKH';$FL'FB8 ;2YJC]X.%T2%_?#B!YA 9
M#Z>@%I,X=Q_Q>:@@ORXA_TTU&"@K)11CCYGYBV<Q\IB%=T4HF!ZV7C-Q!GI(
M!(@$MM'^IA6M&0?1&Y8*[A6!1 5<J4:, Z[?D&-=:..A9-^5%;B6&)C+@^H5
MG'H#-2+Z'BZPLYW3C]\(M<235*#GI!$2LD0WN'B'<('N.T$]PU";N6O5H(W'
M<*TX'N7X4,X&K(*^A<OUA]ML5W\<!#TASX,LI0TN7(^+-_:%0AOBT/#U55)?
M@**WBVV\>&A7V>[FMR%Z@CRJ&2#&Z.P1;1AJ0:3> H#B$@B((1O? K@_[UOK
MH&J361_@?/$W%F? F;M.(!_7=L-F9G-L/: 1)%4#QX$\#O_?=>"J F980R+,
M3@V7'BA;6P>&#XD,O1SDM09\9[H#]]EI5T![=0>OK"^V"<JGZPF*GQ ?&P'U
M(\S@=5T1=1\:*QL/K_<&YI#64&U"+,SY1D51..,[1@"4E+^;@K^JMD)+,4Q7
M']IN..8;:YLV@8P-A\?53+6AKWGKF?86A_F!6H(&-J1TJ)5TS=JHXPH2 :'"
MW,P UU"2(+0E4>;O]A1($R$K,S0^M4U#\@T[N46%;T,33$.*WV"D55&#MDG>
MG;5:V3"03T?KI9#DTN$>@R*ED@:-#>?SCKF0DZ:OEA (B1%> O*81KX%/\?>
M'8!&>%#M$GZM03+'.L2Q PD3WARVLKV#L=Z*UE!X:>[VM+;S5/EL?1TJG& J
M?6VI!<)>\ZZ)[]2/0',$/E8@00(*=XDS/+%CHQ.[Z,0N.K'[Z(G=IW04?RK@
M4;W7ALK&@DYS'I/=5U+L;76PW^E0HIG6U(:+#0Q);( '>?#0]AT.@=7#]H7K
M=QX"9Q'GT:,@V!#,US7984GOHTP--;'VC$HP;+@!5,NF#3U<STX@.Q\YO!NJ
M=>6GOL'P\K0!JIE!6F76MX<@L+5F@<,"YXDAHV)C=:M"V[V+PRHJ%MH .,8
MO0M<C0AVEK9W &0A6)M&D$L\Q9T=%KN87ABU^\*RW9VR#@ W,0HOHT58##R$
M(3H4<J$E%IIT.L VLX%KOG5O9=EB^]^&#F(O]*V0P:2'MX,'001-7Q=Z^T,/
M&8;/O?Q%_I7D8FSY.(@"B1,U8PQC+&]FLJW(%H'U,0ZFV!LPP"P,3>!U,X2@
M4&X(V<S!_O\4Y8KYV)99W0Z,@=ZS;0.S\4\(7!>55NH@Y,%-KQQ5O*RG"R"N
M/>(BF-W&!<[NJZA8V4\XI  E@ZUOV=MP"LL-;ZC%Q($=(!1F?85 'F,-P>:?
MT-ZC_[I+?\3W>KWR SI(]<IC5/>UZ9"LV:5';)%::T]D-7.X$VQ2VO[0P(9C
M'](-0GK8-@%+3.C)8*00C_@@3!2-QJ8HI!1C+4-P[POH_T RUN "3$?W1VB'
M>AAU0.7\JR_#96+4PA6NE[<"$W WO#JT:">X]AC^J]O0P5J&Z\20>1= KHC\
M=D1^+;*#2#%$3@=M%-L-*P1H83VOCQ;_!!R8'RS\Z,9.#,+'QO]&498VU>#F
MT;";K3R":OPY!,P2%P,_3FZB.[!#>8+[*,"]KKUD]"R$G&<[6$PC?&)]IMO0
M51X/_< /07)@ZS3!-%!OD-5HT%5$2P_7O%(><"?;/#Z"2@BR:G ;\I:#BP(C
MHW' 1H_K0N\^^I2NA\XLNN8V6P7GR?B0;&R/PW@5^G*/1%TS4KA+^"]B2#UL
M\6&8W6Y0?QY(CPW)@9ULO%OX*L1*($EV H];,B^DM+""[_^P-!OC11)%+GP7
M0?)=5:1?&$A#81(OB(_CH'@88GA$P5Z1A,CXV,HOL&?VFAA7A 3)NH=C3: 7
M!LW"MBB/C7*0Z-GT>L.]@55@%!/WFNR?(=C8&RDV%L1VX#1KX70(P?R5S72Z
M-E1S,VP!AA%ZR![PE<5F-&ZVQE^P>^B).D%@$?4/VH^\VS6=A52W41R/@GCA
MI^$Y)IQ_YZAFMXO-ZO!W99_LFWD3E\^]N$47SPFQYU']*D>@T](/,L0>P*U7
MNW]%@=4/E1)NL8+#UNOHTDI(8L@$"X.@@,.C[@:[*WSL3/)4N :ZZ+'^W;0,
M^+JS"):+8[0HO2#4"RL-O6$PN8^Q+[3H#4&/,P?P!E#8U/,<L^.CZ).+0L*:
M&]HGZ"FX<#!<22< O3-[@?L3(?VQ8MV588*AL'>#R!?$>WHJ+5XBA/T2 OL-
MFP+BJSCYI_N3V$K"#!-KR:XFTEU.4PV:(U663I"JQC*4*A@:"32.H<0N"'.P
MPC?H3H+6Q"ZM<B+%J"S0!;5CD!V5IPV#X80.2Y+4]AN,0=$"J5.JSO.BRHH"
MK78X)J&*AD9IFIC@-?')'#P)$AS#ZG RO0OG(!E5Y#L=5>BR ML16(T1$^$;
MGUA<CJ>*#[6%[7O7J.W?*K27N.*8CQ6<!\'050$/'(?]PD+H?=>IKVNBS[$6
M^FU@9^DKEHO _IDEZ.\C^\/O.M5'670X4].QNP ?:J,SHR!JH.' 11&J ,O=
M2>;45AF$AZ2P$VF'?R;8.\)]H1&ZCK>W5>)K:!\&C29W_>J5X^::R."%'W)7
M$>(B/CN5+9T^NM9U-$$1382-+\4&3DDEPFS4R\?%)]TV%-6T?VZ&#!=ER$09
M,E&&S&%KVJ,*]5<JU-=Q0U'OL)J@,CHMJBQ@&57H<HQ*4R+%BX8@P*5_;M$_
M&=6T1S7M44U[5-/^[IKVJ( ]*F!_0P'[J3>[?EK$_B9 ?WY%Z\=K5@]^C<#3
M2O*/E/&O+F!9%27OKRE?IT?\A6#^F^O&7^D;\?Z& E$_B"?]( Y==6Z_I?SX
M=/33"562OU0'ON\NJ\VKJSXD'\,<3ESHN;X#9IUA]%I"VK,#QQXK1LW'(HEU
M*YA]=ZNL;#9K_WTE:*5OMAY0L:@.UA<*A1>X?:20_D^Z5NS6UT?E]:=>7G^J
MU?4?86Z4&?QH6CUK66U4>[^+QQ]9/-A&($^"9'8,$,Q^[Q(:@0A:WR1GNH.P
M .YQU3.@#; X G/(*&YLG4Z[$F=/RL=W;Z1Z2Z;M=KW*^D(QM*)-<&W7QF]4
M_>/4S? >O<<L8ESDOKX7$CQ>E;I8E^9O%HJ\4+R^JEUWSZIX/0T@ULUUSFOQ
M\8:\P%4_+=\0E8@1^L?%__[+'L_C,L7'AE9G>*C'1X=ZT:%>=*AW5F7OK_3-
M(_Y,$@<:V@U=TS'T2_65??JT/\^Z!\@X+.4([6AL2 $KJ%;IXM)+9.\%]V)N
MVW &@"\.8V@K?E@+BOTLW#5Q??OYDWK:=;>>%4+6EB:R/AY#'2$8?CV6]K^H
M3O">MJ=Q0+CZ(%GQT09!J@F5U7AOTB4O:HV7T;D*7N!V2#HPQZ%_![TPZ,F8
M'L;&]G[QLCL@N"$7;M:VAGM]&LV'.'8V0VI/+C<V-N/H6P#%_1*8MP#U44>'
MM_1B.#FKZWB#^WI#V/G6:DD8&M ["-"+*^EB8<N IPTR=V@]I(&PF!O5* <A
MN4>[.#!I5Q;K*=U8GP2Z!O>ZZMOY21<D0Y$!C7/<X.$!Z&MJP&7Z6]6?V[X
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
M-)\!NJ9N>N=Y%/?%U]*?<$K/);EH*PJ60P+>$!'I@'KW,+^EC.O](L]:3;]
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
MO>W)5V?1'2O/]CRQ\=49-1$VS@(;Y^>U/\G>26JNJ4>^^244MQS0]4Z;4],
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
M4L])-3FG%--RK1YDZHF_"+G:S#?:EWHY"\G0',5SK$IK-#3@N2ZD,,!UU8[
MTX 6#?BU$:)K?4F'VZUW)[EB:0BQ.;#O)G?-3I;M[;N<A;][<,;>S<QICBH-
MAS5'+8-)]/9=SB)4/+;2SB:-YJB6BFM5EF5NTM5]E[,X,G!O^F/KAERX_S][
M;]J;N+*V"W\_TOD/:#WOEM:2H+>9H?MYE\0< F$FTQ=D[ (<C T>F'[]J;L&
MVX!)TMTA0-K2WKT28NQRU3U<]]R;1Y>=UHL>]1VY<OM\>Q\I*0.C'^F\:(^K
M:*,RK[?]1J[,Z[5A215C>6&!BHV5^CS!A[_R&[DB+NWM^&&\ZDXW<@3_I.F#
MNIGS&[FR+:YSQJJ=K4R[ZP=1?TC;P]FC[\B52%I9-)LBFD]15IOD1@^+!R&5
M\QNY\BSVHG?#QW*I_Z"6'^?6\ZRLIWQ'KJSN6XVL/K?:T\U*?ZH_QR9M,<MR
MO7:OW/1>BIJZ;%6FF_NV+*PUK9][RM&TEMTK;;W\T-EV1UVAL$V,!M,):LEU
MWS$NS>SM4)4BJC'%6C27ZZU>7C8#%IW;O3*VO:](E5K=Z-LO=GQU>WL_FA?;
M-"BQ1TNQYYG56C9O^\TR2N:+M[HXG7M'P[A#>?*QFP<3U>5I=Z'EGR/35:$Z
MS0VBT<-+M4GF[F41;R=+J<3SPFIT^L7R A.HSZB?1T5;W2]O>@NA\-2Y?X@D
MYY.FN!I$XX>7)@<=L=$I1P;]9E(SAFJR5>U;F)A]J*0>52;8CD@-2I&;V];@
M)B$/[I_P77W(1(AT(^UL4NZ78JK>&U1RTV)N@U_+Y_259"_=&!I/8R'U)";N
M9N/V?);%K^5S5-WZ:I98C,?Q:6'2:<9:W7AUI>.U^NQKLZQ/JMV71;8?*2K:
MXF65'#QG,#\)/J\5?]K@7;*&?64KCL=8;]VT\&O%?/;U.=Z?SN3535U8O"P&
M+_ET)]*_&P]B/OM:O+OMK(2>A*:%?#-Z5]PT4'2![^JSK[?+Q$/7:CZD^X7\
M*EY^>9PONPJ6$G[L]WAWGWGJE'JES331?GE\7C<6\%KIJQ\Z)/RI0X?V >#O
M@+A@!L07.H@_=ZS0I9U$P!(7<A# $G_F')1+.XF )2[D( *6^."3^-D\F+>
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
MG B87IH)AT.-,X6-0EM-%$Q][K,49QO%T!1M8*]$S#+8*H/U>>PV!6_TBFR
M;$,_1L-Y,WTT0A ;",.'[C-VSTH2G<T#RU"?PYX2ZB!LC+F73V0+ PWC*Y'S
M !4MD6J2VYLV^6((VRLK3"F81G5\Y#-ERV,31,A@+L(DS+C DZ]&H<]_=Y3E
M.>S,71L15-"[D>R)%7T7OX RPF^K63ELUMND&WX+0QX)$]"A<F\4<RT]V<]:
MT]JPGT0EN2[+QOBOD)-KF;->N6X ET4O&PK$G 0BK(?B/PCD 0+S@IY/06 4
M:^T=RH;^>W@PK=9\I:TVE75_HPQ2=U9TIN9>3H2Z?L]A]*8SB#B3YG2[$;!S
M"%R2^*<N7&*Z>*'O00LRZ"<F+-GWL2RC7X?'&S(9 4G4S1AIR,!88$-T^!QN
M+3K;#,H!KPAK31.^"R(& V_GF8# =S$*7&%@*&*Z6M= 8Z[(.8HL8(P@*U@B
M=*D:!_&<DV=8ZF(9+EHZ6SI[G.<B^)3WG@C!V"C%-$$QN:BI5' 7!-(8[D%?
M7^0X]F(<<'[4L=(-578D"$%Y&,C@>R,X,9&C*DP_,IIA5B-V.GX/?!V\JHG?
M592=?6[>5XN1:#:T5 RLV_^&S_A.M=@=G.WZ%H+G\X]#&'/@_Q.]:MAS G00
MZ?1!*($0B*%0LJ :CSR04C962Y!DCK#6XN<XLBV HUBYB7 +MD#G:10X$I0*
M: I3'L)[H,.?Z%<('1/XA2G5UJ8:J&-"7N)<D?%G:*FK@%F^A7(FN?>Q1_&]
M)5L+7\* #N&CF1%^(@LQ37LVIQ2+89YM\=5C3:Q9#FUB3,!W!&L,3;="0\#;
M%C(P)>,C(>PE(0R>,!S9\&\9"#HYXQ==V IL"&NQ(H=>;'D,Y$?/86>_B,CE
MZ[<U?D_8?GP0JLRVC6)4TU5BSM<IZV(VP.@!&'P&QV>Z4 %#-C;C18%#,^!%
M;6X9S $Q<OXWD7-6;(EOLQ-F67%&9 @\T!4NN[O.WQ].3[1",VQN#/D&T+$J
M.\=(820^.PSY"''  :@8#%%N^.&\A($I">\(A<9P.\7@(];&NBZO%%5E2,G"
M8D4!YZ '/Q'49A)2(+-TL13%]I"J@Y%P+CD!J'VD0(B'2EF2D0+V!L@(@M_+
M:&C8&-0S@_Y_,7#<]9+"@]/?P.NK8EIU/,'@ @0O,3QG+^B'/\:/AJQ:?+-_
M8?>0*$T\"R#$HLGD^;>BYCX^?J+G$[&"-9V^PL3D+H1:-?O[$V92ZL@*PR%
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
MQ,U$DTYRDKMWE)YNL(%)4^5H=M+?SE?^X0EEC@E.["!$*L=\WQ,L4$ ^!DM
M.W1"BVYMC4;Q%BVOX52^"3F^;_PH4$,>0A8=!J/6.XV)@U?;S6F1$:2Z A_
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
MV6FS:6B[U9OL%'A[%0*?J20:JD*QK:<E(&,I%^K2C]R=VR$W@H*A<]CX>)J
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
ME+9-(M%@QT,UPM #E-A!("!,//YS@*2&P@8BA8A0\==Q;$KU\?@8;8R%U3G
M.TC8&MLJF94JJAM0"KZJ;E<U>>,4-.J,ES2$CUC3'!@_J.H:('I595VB)%CZ
M;@*8K"/3T^5IYR9<7XMD@*DBD47N>=:) U9S+J76\]&K0\KN\&X*9YR\5=<=
ML).Q2"R:M3)3ML2QX"Y0T>8V!YCD?#"P0%X]2R>BDX@_._4PS0NDF<LA2EEA
M)XCEI,[QNWT@P/J :'&!Y%6#=3LD0.-XU.@BTN,U3TT#J\%P+&.:(@ZIK^15
MB!E\/ :FC+R!88*(V4X,$9^5!13AUD)XQEW1 !K'9J)**82FGP.3C@UQ!DFD
MR&(T0/ K3<B@3Y#$.3FR+<M2-W<^8HO9G4E&C W3VHE1>E+%W1#IKM_+V2M_
MRX=B8J<?';-GL3QQ29['0JAWSQM>=7872SFTPG8(C42ZM2;<6^'>C%^Y-T",
M[HK'P$76"G* WM,R_F'SU,R4.G/AP4@\K_.S3+0J_ DMXQ.317^BH;C17W1*
MP[Y2C:'I^YHKDP9QA/5[>I-P2\Z;/Y-S$FC(039'>7J,57Z*'7:(G@+&KJU,
M9W>Y<5:(K*JU)Z$QOE6%]E__FLK:G=U]4,<8YHYNGEWAR=OP1E]<I4LG5+N#
MK,.<HC#)8#95=(/2.(W C_!7= BP[@^ <PE>,=WXG,/-5$$84T0[)SJ^'2=U
M@/A&B<K!>M%BK+W;L#"4@RPQ-^7](%&,Z&Q7N+U#GKG08S=5B_AZG.(8Q4GM
M=E_94_[EEL30R#>B>[6"F!D-@Q-QYW%B@7->0YX1[#SA[,)4&0^>>5+MW"2[
M,U:HL&0\YEQC(\MEA9OP1RB=>'XP1-NXA:D8YA"\<I )0+- ,(8T\3U@Q")(
M<-=!AA?@#<N0MIQNIA+W8WL1X ^R+L)#[&[\)4!NVX@F$_DY=DDBJ 8I-<#P
MGKZ7_)%81]#7X/@8;L'EO5^XG7@_M:5.,3;M#DJJ;S7F'O:XK\*>&"HA Y*8
M*B/FZ&2W!U>O\Q5>GVC8O$[#WZV,X1Y)9O*L96A;NR%ASR;9FG/(F)G_5KZA
M;W@M&L\;Q:N#^)!3C^FDV<C_L'007<+\S O&]-F,?)>LSPG3T6Q1'KG>C1*+
M>S%B<DBBPAKD$G' 5+J;S\FBUB2C,[3/3VSCR0IH2HKI\8.!@?&6"_0PW=3K
MX/;XJL4C26A>G_4>S F3PW"/AK;$!?%-_/7:[J)&/"GLR$I))@$)':G(,0 ]
M"6-8;F"C0]>8JB"A6%+21%^+Y[BY7M6#W23'M_LZGNL]0U^!M( _).#L':(*
M>X(V)*O2?7LGU$^#$\=><R\5#EZ;W B;*0I:<M5%"-.$Z;3X5%X +SNO[WDO
M;SXS9A4L$162F*.2<"T]+"Z =A4]+]?<2_;QW=E#3B[N?>*T#]ZYFYL0O2L'
M25 /+\,<L<"PJR%YVK3_YOUM_D,5HC/6;N>]0188B/";-W(.=,5I RMK;ZCQ
M\$TXPZCX+';994<P^= 67M+^1O&;00B,QZ7XN4>@VP6_!PM36=YR6.)>I]\E
M=K\GEGV&G&\3*Q9I4L3OI>JD6#RGR;Q%79>)QF.IW['N+/,PF>D3 94*K7I?
MEJO=XHFZ&7](,C=]67:DSAM3<'@N2*.S.EA>CP_.'J_U2LH "7KU1%*-8Z_"
MN-#I >"33E78K?[F8(%G@S DZXUP[G9$I]:E.P^.RLP1PJ0^5)WPZL$7($EY
M0_0E3Q+$[T-K'KS1=[('KE^(6*_( >>R$\YW]HK\V1/2.4L/D>X$[W$>/)C
M.WBEM%,X"2QAAJIR?P;TKV%-1APNRK7O4XU)WIR5FB_+J29.;_,O*Y\""O_K
M+KR HFMA@1&AOEW)LS6A.>S$-2;PD#<*T:,]<[K< Z+ZD#C.R+)8'P*RN837
MH'$'PL!+WR#$VC_HD/JKCS"WD"1@_E>OI<]1(LN9 9N?O3#1Q:R^F$L:#*9#
M)C  2]9A.9\ FS6W+IGFFF#T@SF?(9B1J!C,,^!6K_O<U.1 @B=WDD<P9']X
MDUUGF%MB#HTB'$^[_Z-8Z+G7?703Y+"U-\.FF$(S"J#G!7*"Q+(G 9XNZERC
M/O@9>^G F^2RA(IZEB7Y^]W <EBGR(=]O]@B"(M0@F'>M5X\64"1D74_+8RV
M<JQZOXZMCS0'/M(!S%_"YMQ:D_S&O:1%\2E9)?GG'I&QCM0%%_5XVJ;R\'F:
MBUJWPNQE5IFD;AZWLQ09<;9$$7#/''3A9,X?TQ(I?G/\">3\*460MECK.629
M7.U>#]_>Z^'^7I?@G<G%=*<]&VV68FJMFQYL^Q%T,Q1;6OYA5,C]]:\)B/H5
MIZ;?_M(BHD.QYHQ_(9*,23CGPV.<09 $%DL8RAN,48C5QWCE;9_YG5I_D)JW
MRZI0>%$R,91I;&\[Y_"9?_IX0_BDIU@J:HZJV))>DN"<.TVUR \&0Z F.P[V
MS?HVWZI:AC;M=S?US7+^D)3GJY]J"7@B@9!/=-*1]M/+5D"]1RGSM)W7FI5W
M" 02VE),$^L?#:VX/J'$:Y ^&LRO0"Q!KA2)>\9+F"23<X1(5UW3I]D7A[_$
MG_7)K5V(IG7T-/+3.)1)F0D!JX=,P1G5G-ZV*$0;[4;D2#,DZH'G7ES?R,!N
M8& W96RWP%JT+$,9VF1=O)?,X7OX+1_L%U&%$/EN6Z*\*F(TVY4F.KB5[I!A
M.;U4(CQM8:;+2/T6*O&W7>J0]L";JCC+]82^/5?L@1*R-)\ 3(_XLLQI9(09
M?K=9$JN.X8^I./5;)(E'U$19#(D0CAWCJR#/>:,@5:9@\6NFM&6"E+8@I2U(
M:?O4E+;43Z6TI8\_XU6GQUFZNG #P"^#Q%%QWCZ'3+5 DP12I<C=P220M&,[
M$KGNW(-]C]QJOS#*HSWXHT!O<--;]R1_[ZJ.:_2XM-R8@;=0JH-5'MX">%\"
M]$)]3;$NR",C[@0[:&3#63'!AR$;KY@X:\"G8MI@WSA91#PCBATM-V>(>D=X
M.0HKR^--.!AT@1"TY['N<TRW 6JKVS<]'5"/K<SSC8[W&^?R<<"R&7+<":B<
MSJ'AH3Q"8MQZ:32UEYNT5JX)"[V76F:K\754OP3KQ8PV4LMDL9V<;H:K[J)G
MU$K/\QRS#(^:+PZU<%,&Y!!'[B'-AG>&C28'0* ].85]H63ID&E#Z >F4Y#
M'+9C-)>,>MV.2W>,L'FFJU/NP9R#^%H:*(8_*Z20C=0>TE3$.2)=9*!W(X"W
M^3=R_2YNWUD<10%(CG#P>^ -Y"8;R_ ;D;48(H M*G9DC//V_']N/2UQ^;C]
M;H_MZJ[M0384<FYY= ,:6ASSF#NMI'B& ?=4\/N3NYW8[71BCOA@IU.BGWD>
MW[1N[X18I?;<$,68\;@!=O@5EY-KU9,V%&#JR\<,? /):.;I9XZ/YJQ2$U;L
M;</J(</]?&\Q= ?$@FU%0]5#767&T_:=G.M+L6UAHW_*OOUY[$8W[QA>.U?G
M#E</\C8!)W;LNU"+N)L)T,*K8+S?EF[T&LI+=WV4*AER?WQSEVE<@C:<Y<W:
MC2QHTWYJJHJ)=BG1[3ZTW]*&E^#=_Y0-_V!AF\Q%S)STT'OLHV1[L+BI+7+]
M3/O7A.U/^%+W1*T6ZIQ/UG;>D+6[S2W>#D=R+ )!R#<"CX0J22?H(?H8/'&-
MIJ*3]>5:A"'(N3BO50CU]D,=<P])%N9!D9 H8SL=:,3-+]LW"]V^1C0(?FOS
MU/%8)AR*"4(B[&,Z^@?]WV$Y^JS#8P06O49@F.:QD4[D\,P)3:+GDR88MO!&
M^]]&X,<9X%U@W"M 2*:XRGKLK4Q>TTZW@F0<373=]&Y#F"=PDB:!>#7PNF'X
M?A@VE*0;LHXUF$' [<Q3CB>>;>6/<)O$D^8X=(]H08!;(.!I#H^?+8GFA-3_
MB>Y")Z3#!3 F8C,ZL/E%ESFC$S ]#>T@L]0BN>E%R 8R+%8:"3F?DJ$,';@*
M0 8.A73UH"G4A^3)*@>)L.'+F6%2AR(3,IP DK<LK@'+!DOY!)HA^@]X;] E
M=8Z&/,!$B@;KK9Y>)<?9QU(ADFH]S>*%RD9AF4Z_I39IM)$1+V%]>#HP/M.8
MUJ*<;TOI6TUHKHHWYK,@I^7JZB],\!(&OZKY__\5VU&?W['1*^L6^_-.I0]@
MD!S!766$6I02_@KA_28!XIA'(1;*LT9ST*X^]\5D\F:"E%DF*F+K(REP)<AW
M[=__<$(:THD[<'O28&K$<[8!F9M>TO"A5HS,@<SQCZ&1S9,^3):%#!M&T[II
M_U$2&B/:B&?"[QRUQ-HFTPX-6*%Q)X _M7P+W5,BI3*#M+U"EJ72.B @;5?Y
M[;,Y$P"\QPKT["!-!3&=F<#$4!9;WK&;:7Z]9U;!SRI6!NEW9Y,1R7&-6J^
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
M9UP]%.]A801W62F@+BEP/X>*[D9XM=4N^)F[O7I%YA<.#Z0@^K60;BVUY\6
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
M 4P@59H7_]I#FGL4\$)'G=MR"QPUB/[3'\F/WCD9@4\S'*S)ADX?5&FU]1L
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
M/$?OD_F\TFC2'.+@P<^#OW]"@NI7FQ_A!=39J\?^#B&B;A)\^"H\@7D%3[P
M+"95*VND.!!8:56JJZU]>KW (+ 2?_V;3-PP-/TG("O\I0"/ :T;&88W!U=G
MA[4W[071887]0,VD$^/$AH3@@@8B=N[=C=#U5%42CP&NFYN.-X>9J1:=W%;+
MQ!FB%R?7Z0Q5FNQ% #-H0B;.6UW_\RQ1%.\)]ZHK#M<T?$-TY72O(<%>,]-M
M:*^'8+/YDZW.7W!.X1?VD6JEAFVV!9Z6I<X:7^+9MC+21([RD]12MS0TPR=M
M]XU]W?OM'QYK-TV&^TVD-0J*/JCCQD16Z;0CVO$\LY^U.<I/AB//+<\(:3>+
M2][[]1\>:N$)7%X"6VZ[FCFI5*_)#DKK2:TCQ)E!$AYKT HE7@CJO)%:!+9;
M!3+O_?8/C[4P1CHOH:ZO5Y+)=;:W8'9&:M??)-H*NX.H@\E]Y N1.J_[><C
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
M!IY^+J09F%474P2&90&JX)5/0;U^AW>^?SU$&&;A3USY\!581 O_79 /6[E
MM/+?!?F0);__^B0\@X^[( %U6(@ITER(2=IK;S?OZ8@_(Z/H&3S<[NM^V4L_
M]8H^A+\U6M!G\_Y%*_IDGJC+"_I OA"_K90)AB,8,5XT!$$5-*@=:)!57'%)
MZ1;2*NIZ&BZW1CB;S[T.</M?<C71FK019N6#(NJZ*K.[.K_4C9P"U%)T(_\[
MOE1V@E+HW3=3ZFN[8KPHREVR1W=2.WX^[X0C ^?X?I<2;_()8M(1^ML<4UQR
MCB#N2W8S17,$#F/GB9<T=MZ4*@)>F+Q*X<3=:53\5JC;\=U=;L#NYHPZS.U)
MJU'K3SKAX#>XCKJ1/DWP6)L8L_8BW6OD5XZ^RX@0=9#>_ 6[D+,2H2Y4+KUP
MPNYU(/U6P+.V(ULG5<QFU]M^>6)VAD-V]@C DX=TB1I6*DVV2@WCJ>V\.&DX
M"'@4)$9(1<==R#VJX<3=V['W6R$P76)+J1%7GLDY7*WH"X/4E/$C*)S-@L-E
M<WVMS KM),%(*XET6@Y$(,ST3KPDKYY]C^T%=ZU;!JPQ)'>,6<)TH>F*+GX=
M96%8WO1/\'B'<ROZ"HL7W<@7T]Y!2OT[YLBU9=#*5)8:A6UF1V[KH^DC;#TV
MF^G5A'4_)1?7J>DB/BI7.RJP=5'[Y?1+YI:'_Y,",XR!BW#B\O<MXNNH9!II
M4^R)Z3W63*_3!F&1>Z[P""JY87:X05J9S#"A/FV*S>JJJ/5%B$I86$N\$.GS
M#GD1+!\P_!1.7'Z%R7P=F>6\3#6P;K7.4JM!N]O+*'QW^PCGI6Q0+6(O%PEV
MQ^7B^B"9),FD Y%)(54=BP[,IP@CAA.87VM37X=HFEZDUF,=:V#KS+Q2*PT$
M;DX_ D2%4F-8G*U6 ];>-)@<)BK"A$,0A21$D$SZVN'Y<('AGL'/!#394?@W
M"O]^;_@7R5X#BIYW,RXAE=-MJ=^7<X->ONGT5^ELZQ$VC?ANU<NW^/6451EI
MDQN7TKOU%&C<J"$U'KG HXCO72.^9T 3N+6ZVG7I/)-SY)0ZVE6WC!2.?O#7
M@6:U4FV:,->J3"Q:K7AC%Y]PXS8$&C)MSSE-(J!%0=YO#?*>8:U)-YLSH[55
MF&)67#+;O=RJKQ[A4#-R_#9?L <VVVPLUF+.'@^K=0=BC8H.M2BN&P8;]$W0
M-91*4M_VVA0[Z!LU,E^TMNG\(QQP2K^;7N[7@Z&\8[=:D=X(0Z.,-$EH?EX]
MX)XADMO0M?A45U>")0!9VP@:KUE1P^PHEAM&\Q427KNB2A^2ZKW;CL5T1VU;
M8I[=):C6:AC?&YEM.,A9KV\_62,O&03#V<RZVK+6M)4ME]= OT9MMY.1=SH*
MYSZ N7L%F'B9:>2PI3-DN@I1[B[ZVGSU$/G-5:J5=F;KLBP7M6Q3D\>+U#3N
M0&#"_.;T.1%2!,PHH!M"\_@*-H5U?ICJ[WHRNUL4V'8I8PZ6PT? 9KZ14*O3
MD9ABFC-6LZSJ;-_>BQ";5'1H1B'=QS.GKX!4)?C^ENKP++;;%KG$HAX?.<5'
M *EF9-OY26U$L=7DWMPVR/5\5T":+>+#OGZ$/E!8UWU"4==GCJ0HD4ONP3O,
MA&&3N1&GM;\'^+)Z ;3[5J>6JV/FE!DTYZF=SI-ZP0%:;Q*:HP3^0F7P&QZN
M?T;GB'#WX@DG(F[:BN<*'M;TS"Z6*J+ K,FAL=\I9;&1H"$>8/@S^8*1-XR
M_@EX>,26.6$ Q(WXIC\ B86S5^U!)CMCU4ZA8M7MSF"91T<$A9+=,]0YJVT$
MB<\;8Q$B0D8>_0%L,%6ZT:MU^3Y&V,YR[I3-P:XI0FP FR>1>4=]>NQXHO>$
M>]&"AFL:OB'4>+I!D&"#F.DVY*+\$W:(O&T@WP5'<&B/P+F>_KM6EJD,N8G8
M;Y>QW(!234-UYI/:E^8-Y<">)(%%0[_T##"W<\$PA!E^82O1>\NX;G+D$%LO
MQ*S:2>:F*05L)12TQ,CD2SKUO2&(>XO;?8.']W[[AP?;J0$W[4VU%=^6&8SJ
MS=+Y77N_7HI?ZM3\#-18D6GGDJT")5?S[;38+K4KY*8-H0:,/"+Y@I,WY#(*
MH;#=.1QX[]=_>*R]M@U'=F5G=TO%#+NV;$)6;-*LJE^:F_<9M&E<*]43:IPL
MQ]51=B2E^ILM+,FDH/U($B\$=4L78_C$[;X!OGN__<.#[6VS,QM?)7"IR @L
M,5(G*I:NI#;<W?3)!2]VL>RPCF'K*=@82"V.#WETR '3-$.^$*EW4UW_8\'
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
M4=HP>,TUO<T._*DY;]H68B9$6W4)H.KB(CN-W9Z>Y.<%61J4V-IB-)<++7!
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
M(G&(Z-HB88CHVOX(NC:8\*99,=XT!<M\B0G;J6+/W"RO 'M;Y/4.=_G&%YM
MM,DUY[_KQ<Z5E86]-#D5JY+#Z6A56AJ3Y)=ZWSK"5!<U,&6S,L"E)<TEF'1(
M(U'VHV"T%LSP!'^S56'F2;U[Y26S2.RMY2%#).7XKIK8)++S#3#FN S*PDI'
MJ=!_>M7,+^'CS#T]*/39O!-?"4R<;M5:A&.9\:\-\]P,(!56I,H#AMXPZH2I
MS<Q=;E]P($ 2 "!4Q%[S9]?/_!(\7CN>Z]N5(Y5F2HI9%R?YGKY<FU3S,=#1
M31,,+<?))*.6&EESQ>J,T!8!.B"]TTLZ>8W/)L+''U!+\TL >=NGO-_7I4FS
MTL]@5&<S;CJIX:B3H!\"*GRN7R\.\OD\1K2ZYE2GL@,.:P.HI%'9&?:\_F?7
M_NI V8OK\[AM"IX1]J2^A8CX*5K-,/F&H^7\8[F)PG":WTC=?8NTYI</<'1
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
MU25QBXIPY(E59C^%%NM&:9YG2#_73DG9&FJ4:+#&A'N Y .!Q*2I]W+F, H
M^O"&7:9?(D;S9+:-^+:7PJH\@O:;9\W%7 Q2'3=-8O62,N:*<F&^$-E\%75E
M""E8UGS)_8<84#\.4,^WXN8+CB24GM9",+;:*714RQCJMS$1H6E)0KU^DV&2
M5J:>E?1NN=GP(&K(H'[M1#.9&#<W>7@Z"K YM<TV[Y.-&=.U4UQ'L[O>V)O4
MD_)M@,>V%7]4&M:62)_T4LUL:\:A5##E4+_^I= +EI/<.73N_.#Z'V'G]0VT
M:6V-R?RZD5$5DF/54K)8&=_(.HC-"PMBD,Y*3+\S[@]+-JDFQRQ$4$BSA:?O
M?K/M13ZE99D+\ Y^T.5* J)=P-+S.!MX5SMP4?0OMY=DV4&EI0G Q1@!RU^
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
M6)97X,$6\4Z7"G&A3!R^G78'6[L_X1!:N6J;32EZ"1'*JUDCDROFV(+,IV$
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
M?D7W<D:/)BB;!J+-/*921X)]O*+3.61HF^Y@L</M,WPH-O@5>"8=3#1BPG6
M']U YR,$7P\=@FZ*DI8(/07X%2)YZ9K0)L!3J,#O[.]DNM8+*Q)"KS06-,&8
M0*<C@?$B=&A_;4]!'CZL$@2@?X>>YU,O84D3&(@$#L@$=P3/X5H6S,,(05%-
MX(-DX/["GS03?!HZL/TW@6L$\RHP<BT8(HA )@HPE- 3[;PB' ;?"*9WX-&N
MP.L]<>;9#O@@\'J/B0+P/6!HZ*Q\20#N7S+@G5[Q8C"$"&X-?D "IP:?33:
M'8#'V3OFQ%_P8X!&_^^//C.0WU_OP/73L4_>#4,/'N.WT4_7/,$"7S: 04B=
MG5AJYB3XUK,%2#%\!=H0Z6<OP(3/OUV*3//-6EI;EDDNZ9,33BUK^4I2?A9<
MI?ZH[*H(S*)I//V^!S]Y /Y&0\P.TKT"R?5Y(]>=2W/75"#X'S-'T/\[ 6"N
M@9\>+B]VY%#LZ 7$7M2U+-\@38MI$N,Y*F=G6F'!?I?8'91=6DTIC7%5A3(Z
M4[+:I&GYU[_X(_&ZV ,L7%KR:.90\L@%)%]!:QUF6>D[G"3U-[6LQQ0=A_XN
MR<^J[1K15!0"62XMHCV;K]:+-I \\7A,O'Y@\,#I@_@-7E7SKSH%OF \78 '
M"X+1P'G/!+"&VOOR@YEFRW,:QJW@S]MSUM"#OA@YVR54]IRF3T3NGW&4?;,P
M*RWR382I3MAR@4SEY?)(?JF\?8[F8)^_ON5D;1KM'0-K%A*P<H8Y!E)<P?<.
M4CK@SR:8GC0E>(XN>+"L!F+(7SN6VE63[[E.B<35/FK.V551\6HM8&@P,ER
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
MZ\P6'^_K];DJ*V,=[T%6AK:+(E-4Y%'#C<2#* 8415=S@R9&$C MN&K"S8:
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
M54(DWL^;A/^<?V08N<KB!Z>%7-VG47\3A IK0_UGBY8\#X#SGM:61.@IS@K
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
M]!>:B,\+00K8T;GX]2.@[R5KKG9V'!<^].A9G-'N]>414)Z8OG^2X'.Q@/Z
MSR-H)QY2QC_#>_G2T&4X'3D;87J8[T,( :</GV8LJ+81YI+8QTR2XTK",2Q<
MM!T21)Y'KTH/])=]]"$@AZ)!S5%,#20_!^<!J_B99OX.F&&!I0&YQ5<MER=*
M42=!^W>?]7R<XQ[N(>LW0,B9 5JDF+F4F9'X/#^CLI(T$R02GP'X$1>I?"9'
M@9>8.A6O,IYV"FH>WY?3XWRC3?2WJ#SD$B2I3#.TU=Y/::4CC1EGCW,M:8RN
MI%Y>F=:=QVRUX[658J4Y;8M]*6T0"**)>7EE;<(42Z(PKO# K=A+WMU3<PE!
M-%U@_S3T51H\IJM57* 6*D.T%NV6NHP"<ZJ"%>NR8SCE06:S-5H+?5@9HV=>
MC)-KK'=NL[M8XT*%ZU5&P[:SRO;@E1?CK$Z(10=TA T,A<S.8>OUZ'YS&040
M!==Z6)_GYX0B,#LA:RXF6B^]C *(JC]*6C7?I01^/\XY"EDD[/2&C0*(FC87
MA_TR4]9PMYFV]NDAP*7F,@H@JH9O\G-O3 _X2K>S&4ZG8Y$O]8*F7<^O;%:Z
M?"W=+E>YQE29=_&,+JSG++SR8I56S46!U<8+B1=FG*$M3:.4AS.* )V:MFO*
M5&,W*IXN;ZN3QWSZ4*&60=.@%RM?5MQY?[Y\Y$%>F+5WNWFI\-B#5UZ\?8"S
M^1[7; H\:3=,N97KK8Q<[PS(ZDH9[_[ICY\B5!1,M#-^F=7>WC87$]YM,GB:
MV]-4<]]*YV9>S//4Z1,6 XD3F?]B_A2Q<([?%)AT=*SNJN$9!\'X9QRX;Q86
M,DH:/D;>]LJPX(A@_(+-46VVO0*J[P?X9]'0__P;J?[C=CMZ"%9 UPW\Z[JG
MZTZ)V] W/VZ]NT'>%?(:?<,FV[8+0HMUO.8I"OD'^UO^3S#>9PE?_X7?'W^
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
MM<IDJ5>HI\?_/WMOVJ,JES8*?W^3\Q_,/OTDW4GIPPSN/KD35)PG5)R^$%1
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
M!),JN";E9CE^!*Y=G$&?&/*$MG:3F=_OQXNC"5UKEFELS.E001:.TJJ/>-O
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
MI_T6VQF>K.]-+0? ;2*8P,X]&.G9- !X,^L7(>D6/%X';#-C@'6_]OCO;X3
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
MPH@#[]OVT#C]>H3:__G_7LR&>Y8(<#:NY?S>L_W!J78SZ;!0 JAR<CMZ3E+
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
M>MJZGZPX/M@[D=!NEOK^J\BHVXMKN$Y,33A"'L*@L*]U9SQTE(A8(DP7FL-
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
M,:2]OIU0F'1"\)/]:BM;":S '2>=P#:!Y5U@  V]39%[T%#&YR%VOIPYWE\
MR1<.; [P^!?TKF,#@S202V<-[/LV@9<IY/5/4MXT$JMYN\\TAW%APHZ[Z]JX
M_@"4'UOV:V1WMWT$=/<VO<0LV 1"/]]COT12SW:1/RW+3XL"D]\^N-UQ;+I^
M.Y8*N9UY846OXQ&XMR>LNV9S.6!PEJ\HZV92+[_$ V_%7R$W.*%:@*JIF::L
M9;16:C[IEQ;5^VZUU7MA 5XQ/63K_GS33F0(1&=/LBPO%EA-X@TD?]TY*%]Q
M3:*-WU/;U@'R^AC[,0,$=M]9<.0+VG<%!=*[)_*@*3;=C#W'MHS@,<"W_L:(
M!Z.8X(WJW4@]FDQ<9PE+Z6-[=2UWP[G5_-L/[H^5_#Z?D:O%8^_HA#U@K=;C
M (WOYWE1F2[I;"5K5]M%;_'M'^[[B>W %MV<W_EZ2&!JG\"_*_-HU95X)_7H
M#J?M:6=4FDZMJOQ^3\X?$E@I+I*]Z:A0:*568\=2NU@H9&J$P"_[9 *K>6$:
MT_(^C:G?I+%4+57J&6^I*(7"0JI,4+FEB!].X[K>*2R6B;@Q;.CW\_G ]H7V
M F@<9.]XB<9;"+'GVXSAL0&*Y@5<0C@Q6!A"+K+_]8BGVIJ#P@FQ#XT N_@6
MYL5^>C[#XE*+>;/1B%P[ I5.%FA.3- ,EL$-#$"*'%U-8'S$+(&:-QW;=A;>
MCV"XO^WM[SB9?FZ2KE!*0:_E,P*?[N6[O>>14'H?&S,;5TQ"P"W]]AS'^Z*0
MV(X["'QHPAB2MJ,/O^T.,\>*1?N]CL50E7M5SW4+K1%+L!\&1IY ?[X[PV>+
M!_D9=4)]?T,\9/ F]8Y0AR"6ZBFT9Q/=I\.BH(F'?^P^[(]*@,:W(R*A$/HF
M)F07QQ3$W:"9[^R^V$3=!-\\B\W9"Q#</G,<^N2[NX'M F\VLW[;#3Q!^DZQ
MK]U6VXOOV&N?G$J9P),[LNU^CY-8R!^;0":"(7\90[0-Z0HZWCV*-( _,Q]?
M-G3H9<YX?Q#,]N<?1A)+3+00(5@(FOU.\]%*A& E(I$(R4)$(G'FE7CG/?E?
M6NFP1'5?5-RO<FGM^.>YKHIL9&J+)DD0-3U9Q@+'SQ7NB3P/>+\R"UR3)A%_
MG/T>T>ZB7_P,A=XC3?B)+PW^"F5\:J47K7:(5=CVCG*DP"*6_BPLO0F8VW"T
M8YX5ND2K'_K5?\JV$*FTB*D_"U.3<S/OUC79Q^71N:FE=9Z2PD0:*[S,&QZ-
M]3P'RZVZ3O8N.)Q5HUV9.M?5>)^#-8J6N=V/QOX=Q/'\=0Z5>.54Q,EM,.5Q
M9E[J?+Q_W2GN./ILW/SATWD[ U_\BA^ECJG[Y)3+#F:MBK6B2@O?[DSKO=^Z
MHT'@XR9F^9?WRDCNC'I>:F.3;2L%JSUOVO%V?^4G5"&HTLG<B<RI<G81"]\:
M"[\]WNXPM#13H>^93,,>41TWP?67AIK,CM^8@/$G*QYD2=S#P<0 /''C1&=,
M6<\DZ"'#)[-=NSII5.*$&SF0PA-WVV\&.C_EW1*"YK.;BTTWB8[/+3:AD9$/
MN&)V$!K/S1#_:+OR2&%\M%;:-:F9-'[O5O%/47O]1AY);=1@1ZVA)\9;\>IX
MS&?<FF9E2;HDAN3ENQ,8^7(J/V+4WV'4@V/Z6T;'!XJPO4TA<WS1,$(9-X R
MB-:\0,Z&:ZC-IUJ.KUZK!?7Y.&:1X#3B=2J+?9K&'F<TER2''*D%0=UQ)\K:
M_Q4Q\VTP\SFU[+54:L9Q36Q%Z#+L7K)/I#N?6.X5U&DKFKLHN_?\T*J,>-[L
MEKG'?D^5 ]3)'6?C.*/.#)&7^$NQ]V?!K*]Z=.G(MM^ ;?]HCRZMCN+U@DT/
M/%,I%,:%E.3G127[IXKV+1[=G%%9E7I-:]YBBHVX6$DG:,/OD7S$!*!*L+\_
M5K81#]\>#[_C"O4;,<!%7+K-Y%"K.8K6H3IS1JW5S;R3SR4(.VY\NGSDT[T^
MZH["=3ZJLN9O9C>XK$=8]3R<I4?EI-(05HGL*,GG1KT$R4L/)H-F[D3Q.-W)
MS8:F16[A$$+L+^<6_OAPH3!!F5\JW@]PC'R$YGVS4[GVB# SF> 2A05%78X5
M3IC'$Z3<Q^903N2/,WK]==Y8N@BYWXJBCCS+MZ%QP^R;^Q+J]RU^Z=0CTQ@S
MJ9S=2IF-%5U)IZMJ=T&J)Q'-RQPGJ3^SVHV<T[>OD$/KG&8^"SP( US^8O5P
M_Z!@R3S;$GVW)MPKN#GV4W&*:53XV@?XOI7><(5FA;$^+ PZ_>70&[3QIKY=
M<,IXQYWT?5\615^;;2(Y^@@7^QOAS$5<[+3!YC)SE4FV*KF^[ M44I]F Z[G
M?J4+Z%^5E _Y#B6ZDOC9+E&';MK18M_>M&\2QI?W2FI&2#Y"()\5R3]55GD1
MQN=3V6F2*:D6M2HR:\/I)+-&(:@]'<'X2(AN#<8_\?L;X?PZF>W$G4:!&W9L
MW'4>AHOV8VU!N/],</X_02& XZ="@LTO7\GB;Y+-\V?)HDVII*,21]L*2T$Z
MGABP"1!MM2ED3;[V-L6C_D.6-BBQM*EDO4G]#+_[3O!84,(N.,@.RKN3/ETC
M.-H.;]%-<D;IO5@U8UL\IB^W:89G,@\MU#:%?!(739SZ_5++EZP"V4PL%QFC
M39>'>(J*B45*@<^);_]0OU$$DKEF5<XW+4QZ4:]T*ZW"M+5*-"9.VI07M7XX
M%V:*+2L^1-54"^7I]M21TLF24",+<WP%]2W5.2]0FG C_9<H@QYN>?S8&GG3
M^_2T7.SR/"6@GC,8/;09]2$H9_]*#:@O)H@?NR+-O-42W3S%M-!#<[T8# ;.
M7"05BU\I+??^ZH5!B:@KER_<VO?/5[_P34PJ]#KS[K24F5'QZJJ1>! &#[C\
M_F+.&\3[:K6M-Q>$4Q,SM=:G>_=#@>VNIZA,=>['-<)Z+]?*#E%5PS>1?56F
MW$S;=40*5TJS$J4L^4R]=E6RRU(BY\9-9D6EBL8@4Y^M+*X62/QQ#$0X:QV^
MB?+M&5]EI&ZEH#!+NU,V$K-V>OV;E3O/1'G[/JZN&\F*K:3X0=9/J0FOI/9^
M 8/.7@&1]$26P8+7-QZ5#]F(/=LB;O[R%#'"3-Y;G&:OVHYN U&(?Z/_]_-F
M6=+Q!<KMO)B2G^'V0NDVLV;EPXHZ__U?STH%/?E;2(4^Q_VQ<ZKLS6I;HH@)
M_"L]'-]4(D(F]/P#V0NT\K:SE*3O#+<+Q_GQY)@A=(CQWR7I7[&?'PDUCDA)
MBO_M$>Q9<;_-6\_+^VV_^T4YI.VJD)H@#, *?O*L!"+-?>?XRRS408 CN^<I
M0B?;;UHC@!IEO(C5G1$:0^O!-Z2730??8GV7J*[_:592IPXR@L\@QZ!4[&<U
M0;=???LGJ#])L 7Q"A&<\<3;Z(Q>D9<E;\=EO,#J]-_OF_U>)V<3V.<,=XJ3
M4*! 5<1J+,<+@LH).E8YF95429 XU=0DD=,DF=4DZ=N&C-LW!('638-C5$29
MO,J)R%!EA'F5UW5,R30OT9AZ_H9!(Y%ED*1BBA%5SM1H5<.R!KU).A)DD]4H
MX?D;&M($^!NGLH; J)Q$:ZJ$94X5:%DTX'U#X(SG;R"!HP1=%E4P--"'*,&H
M:!I#1Q(E4S E0V:?OT'1E&3*&JM*LFE"'P:M(@ZL):MCS"$)&YS$'<P#(<&D
M=;"K@@1OB#(/,^<DE3$E0V2P(#&:]OP-6N0,+,& 6"0 K01-5B518E6:8G1!
M$C01B\SS-UB-UK')Z"HELI3*<1BI&@6TXC43 =$DB1(/1X413_$,/!*L!R-(
MJL89@BI*,"*9P:9@',Q<PZRDL[RL F5@'CHEJ[).;A32&J-CAF%U&3][HZFK
M[:+^N)!SHYE22+=Z]%JF4XUY#W %=?BD\I!J9ML9I4Y-&]H(#_B.TAXEU. R
MU/,G,ZE>JF$JS2J591Y*"_V!BR.&M,D=/EEMP,YRUFL@!>5*DC:MLIHR6,"3
M!WR#3$[7=-94=1XXDJ-T706*F:JF&8:(*%AI5CILNV+P:7=!50HM9/)-O=!)
MY.://94Y'N]\V>9SN:F5IN*C2I:S%^;,$VOPY-%XIX5U3L-4<=EJH-FLLU:1
M_\"3)P_&*YF,P&!>A"6!)0?Z"RH294,U.8K5*8J7.>V /TP1VA4%5A59F?"Y
MP:@2S2.5$476Y'A3QQ(Z&HTH#$83"D^IN,(F5Y6<R!6,A,H=K)U*L8B73$H
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
MD3R$9"&B%$\A68A((D*R$)%$G'<A;N <($IZ%B4]BY*>O8N!HIQ7DRCI6<0
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
MDN=9T,\Z]($,75011H)H")H@\P=] ("@-"0AE0*Y@3=X 436X%4#5"8%JL>
M21WH.XX66)ZC52R#BB;P![""01.N,#4-Y%T0#YC?Y!G 5:#414H@M!)Y519
M A@3=)D.QE\6#[""*)@P0YY561H!31$25,3KC,JR,N@5F:40>SASDY%HDQ%4
MF6- X0!> ;$ :>!-@]),EA(/+1/PF*X#$M)4G65A'IP)*HH 'UK3.,P /F'Q
M 7;C: H+,BL")..!5H8&0JPC &8L0%W!%'6!/IBYS&L\3%52 5O /"00(TTC
MZZ&Q M;!Z  *.F3!NN,\CNST ].J=%KMQTQA,'<*H%..%17RU+$I=$:E8<,I
M5AVOY2%62IQ"1W6AFS/CW>%281P&M_(/A<2BWCM"1R3C#.O4TJ6<5Z-6ZB1G
M)A-#UHZ3-@_1'$!53'293A/A8B607!I6%WB#YB032XQ^9%'G"446Q**8!B10
M=_OWJRYB4>(4CNKA[D.JDF-3K970MA843I>*_6,<16*QN/J0;]>]:0NS9>K1
MHY>3HD:PV<%X!58&T9!EE9> \\#B@60@7E0QYC00+(!<Z$ R3,3 UME$H$8!
M?'., )A1UFABX<'Z8AWT]Y%]3-9P[;%5XW-*_-[M,KV9GV5*)S&:),+N"*RY
M3 $>T1FPO0)C@(9D,!)-FH/!'G 2S0N Y1B )0:\08'4R;#I@#<0(R%@0,XX
M0G54M3RQJ,5BV9JF,6TDL@SE4\?(BW!2L5[H,]UDC6(*_9*G3QV;*Y)RA4=V
M-+G(#^>M"=]N(;I2:PW6[D.NE( GC_ J7:@;=M)NZBUA!O8.@'''1J0"J'BH
MY33.8!C824@@@K#WT(C8T+#=D3%LR!A,'4 %4(<&KP/"4#6=2"ZL+,@A@#NP
M_X:&06]1QR8);*.BELLE7IG%'Q=U:UET6_D3:([5$)8%V@2AUD%+@XZ#/2 Q
M7+"#TN$_&FE'J^X6\E)VFI K"F,OA76QKE)>-G&,YF2),36:UU51UT"?LQSL
M/62>!P5D ON!">"Y(RI6%LUR=M7O9EN=QG!HQL6*9+1.H#D.B")1H(8Q 8F
M<#'9R\E@85G CRP/AN1HU;UI"BM=%26&A=7\ 7!N47PLUTZ@.1K+2!:P",(.
M>A_4&&QS.4P62S8%V#D9E'%DIIF,+A4GKK"D4KZ=Z"04N^OG%B?0G RHA><D
MP'\TL5FB"7M/$]0R#Y:'922!YW7S2.H3:_/AP<B#9NC</W22S6)OD:T=HSG5
M, 638PT8.6D23!.8:08V0[!5T4S8\<F&>+2IR&0L[#M>L49UZOICW9"G2KY7
M.X&[*%8S)2S#=A\#LN-@-ZZ">0*\P;*LQB(-R<<RJ2ZKOMW)^$4E*V7NK9*$
MQICNG<!=+&!PX O04(@C3 Z<#@!#(S :-F%(YTW^B!'K2[GM9AQEI<S&#75$
M3>*#I% [QEWPJ*0W[+17&K5:%7D@)OQ46?<>>N31 \,J D,!( "QE4'$B.V'
M%0-:T!AV^IPL860<,6U-J-!].;MTE)&0RL@YN[5F";@\@F@F;0H"&$_ P4 \
M3H!]N0S]J2;,$H1%% #,'.W+_*Z'Z96=5QK*5"J/Q0<S@1/[$,U:_M WP00;
M-W#PHJ9*]Q1J2(559XA[_1&]1L-,4UJHY%%Z<]();V CX?_J:>8";MYCMS[Q
MY/5QX)]WQL2-1UQZQ$UNG/#O(\_#\ 0Y^K,M%/C,+ R_NYB<?Y@.<81[/S[H
M0.+0(?C<9TY.*M[LV7OFF3]')-3S(]R&WL?&S,85<W=H0N[B![1,C(WB3TH&
M/M4F])VT'7WX;<=2R:)DEW"RG1FFZI5I>]CQJ;X)O6!/1Q/HQW=G9.<5Q+8^
M^>,WX<LZK F:>/C'[L,^B4D>I:WSFO@O]8TC=W?X$#C+T<QW=E]L7.7!-\\<
MZGL1T-MGCL\K?'<WL)VW?+. ;[O-)<C?I5?S3.XY9??:)Q$I)K#D;O%WO\=)
M_/>/S>G# NCT2\?_EJ>"CG>/(LUS[)F//\#?3WVG^)\>_V-?_>\YLK<_+YI-
M(%J7ZZS+ZUE9HU6)I"5:E[<GO(S6Y8_6Y9U7MW]I[*]!A. XW/)AN/K;"1'^
M1#TO1H"<ILM;BV1=H&#67FX?$G\1OK0.;R;4/8(=H[O:4(>E[RY05RPDA'H#
M2[W,->?-!G)M4OR:9UYBB]],@!$R+?IU=>:1+=G7!A]#EEO(B_9F]4G\+I\I
M]]<?L-,'<<]-9%7:)Q+QT_VIXKQ^HO/]&6V<A3><'NA&E6;8Z725JK6AI\K5
M=&3("7.62JW7!):;P@\)77=G^/D1U-CQ=Y?6R)42;,QTW])L?"N@\@^E_!,5
M\WKSS,^=]B;AJ15S[VQOGFV)OEL3[A7<'/NI.,4T*OR?IY1_.OJ##[OOME<Z
MZQAH-L?D4##@<>ADR^M[9X2G*O/U2LG1O#*?4((Y88<49ZS<\4+ER"$[?\>=
MK,QW1GMP1='X9#6/]J=V6?:FU5&\7K#I@6<JA<*XD)+\O*AD_SS_[078>UU@
MVHW6I,M3*=&><[TQ$^_C&K W]^T?[HX33U6G^QS@_\G>S4:SS471,?9CSB9Q
MQ;BWO2]ZP\ N/&8OA#5IOXPEK.P8N@C\G$*NN]K>>#ZE#8I>Q<ZWVTR#8GJ,
M+ _=ZNB1)0&?)%4H=<?+ETX5'RHA^?R5F3^337P7HR=SLLDG"F*FM1*RFE\O
M.GS>(''5)/TG<R<)QUG7;GA3EW+<B0/$P;&1-;9&L]$F==)G *G1_NV6K5:0
M#O!(DI_8M;3AUB!'X DA'J"$.-"7\S(URU,]J='N5I"W4 5BK9@[ECLEP]'6
M+-J:G<,,_1GG5M*ZUIUQU5DKI?>M:MKWVJY +CUS044>^?S6)RS(:F.0TI8)
ME,,DK8N&_07&XTT(/$E[]3,!C88\*PB9G[AD6^:O@@?P=&9-2&ZR3XHZHZW9
M)S-R+R+6ZI:MJS8:^XFQH>PX^Y2?QNRE!NU^L3@<+=T&DT]5%^41N?S&!( U
M.)2-=F;1SBR,.[/W\'F_5YX-C;RU'J8&5319LVLMQ=: STF!5_9.Y$]Y(&YV
M8T:\MLC5^X%A,_ <VTY F.#W3;(S8A=UH*:UO1NV30,7;=Z^;I36K=L]^) *
M./J9EV8G"R>4@O<X7?OC=J.IS![K5*5:SH&^)KEV@@*6M,A\D0*6ES>$-R0B
MMVX5WRT%:I*?,$V_[2JCXBKGC>[7]#K7 RD(-HT"]UK%HMO>-&YZ:#K^?M;:
MHZO3GQ3K1OO!KV(7LZ[CG?(68;'\N&1R6:P@N1\71+&\'JQZJDS,'TO?\5RT
M]XOV?B&U<B_Q=*.5Y#2I,_%:5I^=Q?L=6;]O+H"G2=P)=\>RG^0 ;M/#7@Q.
MM&^[H4.WWYGY!8+"/X^V#=-:GC-B.RPF\K>.5ZPQ6)$>B>B.D/1G1=+O(T;L
MWS<+I?=,;=9QC(5EVXFQD7]B\0TL.?S]!$))<_%AR1_>KUNCU62<5%;"HJX&
MN8P!=G/B'<,?5W;[*\+=MXF[CV9[80FX)/ ^FP1,AITZ3J+I3!'TND2ULG&^
M4@@D@(!T_HYBJ5,2<(,H/8Q1"5_&4(9IN_VZ50SN-M)<!.Y#!^Z/_28_U^HS
M(?O*YDP8CTB8F;N*&4\J*P+M%P+M(3X3^XJ@/I" $V#%24H=:U'RE\-*/=F0
M>W3:*%I!J8T@&EB2CAV*%T?K7^C@.'23_X)H_R71X)7ZO9 2UR-JEFO<QQV%
MXH;%'A$-$E1U1U/')\>W">.I7YP3VY$;_E.&3WT-._A4)/OU&]U:FGU@A<P#
MKS!9+H^24B;5J]1(>0*2L8"ZHT\<%Y_9$GX=LW=#,G&K-NZ-;&\ST[AVC^QY
MJU!IZG259JMF(ZB&Q@7N6IJ]@)4+UU:IC/U39B_:&D;G.3=B\D[?J@.^3F)X
M%[=W9<$3NZK@H B /-#Z"8V0+6FUA\<5XRHSO?S8F BM=3^5V-;'H:4[@3KI
MOHX.<*(#G*M?)/U-EA>\I>!1M%!0IKZN%I)FV>([04FH8*<G4>PGV>EMO*%/
MQ(FA'76B?5VTKPNYD7LQ5O*DK!^*>,'0_(Y1[+.*U1=! Z^8?C;9(X79@LLP
MLA#M[J+=77C-W9\Q?R/=9F"C5[:4CHWLG##1*T8A*!Q-[L#0=ZQP,B;G2VSR
M[C;YZ\S8_()6,5RTN/H&\+F&8$%#&,Z,Q%&&445\"N-Y&B[O7$.8 &?Z582L
M=*9^UUBMJ,9RBC+#N37C^1HI/4J.":D[_O+V,WQL%*:#PI +T:W8V3^5D_:Z
MS$U'A88T1/=Y(V<.XI-:.RC12RPM=T<+QXF/;W,KN>WA=&TV^3L\\IF*DOTV
M#8YLQL=5BHA(<D-\\I$U(3X%#0)5^9^@OO0_.Y6ZK99]8Y6^+S_88!W(F+:K
MD/!BR(\=5G>+$<!Y%UO@6!_-<5"^ FW+6H#=)/^#S(YC"\OO]T%L25!WL(,*
M KE3:(P,"^BQO[>*H<G$AJ$35.([Y#?768*Y];&]BOWO]9$S_XZ==VML6)[O
M6MK,QX:"W#',WZN8F0U5&C/-LV#^[OXIJ["!!67DNFIS4&J[AHFZPWBY@>GD
M<I3R$K5O__ B^_WX/"4&/& 3FL"^=#9V\<CR2:9UO.V6?.WM];B7?MV9^? U
M)D\$2X*^QYI][.&G=V&!^Y;>)\L,U"//NF1M- PK-\>>'VR/8:=LP2+ ,L'C
M,!3X<["JT.D ZSYYP0]:W2RS908\L.B3T/\^7L60BV-/HT9>S+#FT-'8@)&Z
MY&GHW,/0K#,C-=@=?0A]DC>?S>I[+!\\21;$"!C(Q1,$2T R\I*'=QRY-S4<
M6S@SF^2DAXX)RQE$&H)^]@*:@ V)<#KC7;= /LLQ-IWYV!U98_)Z'X2$_/6)
M[ $IQD[,=L8](%M LY^D^DG W2)L5^!*4MXD$WN:Z;]=6$(P%ZN_ FE^)J;S
M#1>9KC/:3'@Y@56&B?Q\?4L*ST?^S'?<58RDZ_2"ILCW+D8><!,A'[+L@(>"
M[P/]#(0B-8D#,CQ3U,_D-SUS _>+RJA;3-]T]L2YXV3ZN4FZ0BD%O9;/"'RZ
ME^_V#J6TH?>Q,;-QQ51,$^9@S?%3($0=1EP'(HQU4,I!5TTRNB8,(&D##VY!
MO*8:C92:5-JEGH+315G#O&Q11>@*@UQ/H#,?="*H_\W<MJNZW8WICFVCB8=_
M[#[LKR Y?=D6:QZA93R8_/C)!L=M;/K[1CD>;*N";YY77/;=7:][I9^_O773
MP-/?Q5"BPW<5=/Z44/#C*!#._<''S1^,[E?G@)!N!2(>B'C@ RGP7?X4!'BG
MXS $&,!Z/FOR^8?EPUAU^.LC0.Z8 MC:@*W1S5C\"Q5*O4!^G+T EO!7H7^5
M4"^5J#\+F386XIJ$>FLBGM-)><X3R!%^#GF)"2(&B!@@_/C@=PHFW[+E__A2
MV&&T_F$I)Q_>8+WW 0'B)+R$V0]CP.;UJLG?$+<P07&7B!DB9M@P Q7!@1?A
M0+CB4S<G-C$MN,GS66YDWB@\"-5MM?<A@C/'%_SF^>1O!OIO9(#4Y,VXSBCE
MD"1Z,Z#UMERO,_8V%]V>3C>QIRQ]%X%.ML:P%<K[>.25G3&9@>O8-KR:)UR'
MO5/EHS1O-IRM7852*@8C/8ZYECNR%BJ[*6#-W GT<8S"><%6J!30]4QJR,7M
MLA)%[4L4K7(SQ#_:KCQ2&!^ME79-:B:-W[\Z\[$2E1XDE?IJ,.\,IRN-]RFM
MP4GYGAKD#A*I.U9XK>Q,)$R1,/VA,-'ROC!1JN<&;0(/ _AH  )!KN4DEI:G
MDI!W-1'$29&_91RW3F@&M"GAD89==:(.95&,+X:M$>ZE[';:S#Z4?O_^YL?*
MH=?J=.K]0;<\C&LC+F5U4U1C3"R;\.T?3KJCV..KW>?:)X0=8T:>Q)!Z$D,V
MYS#%"GW%R)"O& L2K7.TSI\TRN<#XGK"M0%(.2,M"*@G)0#TGS=%#F+);]BW
M%^K+]J':\YRC#N5DYF)UN7;$!=^3'Y147*@^CMA4=F6=VV/WGFW-6^X;)/P,
M-F"78S=VK/_LX:?M2YQYVK](8B7509([&%J#RBAY;^56V4)"#9*Q,<+WX[P=
MG]DM]QKW_.L287*WX$>XN-B\VRT7 K%9TZII&.:\1JW2/:1V&KU*4:NIFX1N
MI\7F4XK,ORX3%_:U)>+0MY:IT/=,IF&/J(Z;X/I+0TUFQV$S)')SH/3CK?2<
MFOK]M3U[*+9DJP<2(5Q.(J[D!GM5(")_5^3OBOQ=D1_D*_I!HG7^(G.._%W7
M#U\CB29((H6QAXGGBZ2%V.1$0)HSQY'/*_)YO6.K$N8@-;+I>+8[>?I:V;!_
M$H^Q:?EOW;3\/+ROW3?&,U2R76HTU]JZZ7DN7:ZIFZ23XATM,U_)_15MXF\M
MV.QRDI'V,LYZ98XM:I9Z=(U%K=)<C7OJ)LVD="=PQVDF(ZF(I.*]46._]FR%
M2BI,E,\VS9R:&@KW>IM;UF?+3I_8"P&D@KD3F8L$78;0R_71 /RZ:)LD'\.Q
M?P/3!9_^(LG'GN4W<[$WLX/T>"3%V8_/X!<[G]J[;BGY%R9VYAO\GV*AKETL
M/EJJ:*DB!]-5K?NF?E<5 ]X:X[$?,RS3Q"X>ZY$K*7(E?4974MDA2<!F,"'-
MQMOM06+DP,*N@[^?V 3$^V);S392V2&3'=4KK5%<LQH]529.(_:.$\3(9Q3M
MCF_(9_0;(D#CGIDR^:2D3)&9&\M=8YV;U$ $N&__2.*7"7[ZU,Q_--NSE]@)
MA6_H#=S_8C&>YJ3>J-A%L]A*&7&&&MP7^G8A 6(@?/M'$%^MZ1HY@V[,&;1!
MQIO8.5+\8 \9QS3L+S >_[QY0(H5[(H'D&/:\Y[%?AFT'";M][%5^D*!C;>E
M1YXYQ=-;MO<MTLS+JG'P4%<Z@W*C-TPM3"I7<;S"U$ZH-+4IAROQ)PN"GA$F
M?QY8$"8IN#BC7P4!_PFCBV7!U,H3,S%,W6MN5TW7\N(X8'3 P@)UG-;F'" @
M8O';9?'KP-P_8?&T5LI9[K)25F;:"AOK3*]G/-8(BY/0?I&[',[]0J V+)#^
M$.<2Z!K3^VC<(V7 QC%]YA*6B:U(!GW?&I%#S\A+_)F]Q!$4=L:I0 #R8V6,
M2-VRGQ$B+RK-U*,S=(JS1$D15J-)U:KD<*VT4&EZ X IZ=( .%P"%+G*;A\F
MOU\(TNN54G68SJ!5X4NK65;*+[I4@@@!%PB!<!D?620 GUT K@.BWR\ *S/C
MERG>KBJ"&A\Q\4=MP=LU(@#$14P=APM&+N);=Q'_S'1(X@+M3=5<WXE-7#RW
MG)FWK04;N8,C=_!M8> JL*U+"J?M)<Y\3?=E1ME%NS@T92HU3JIYMM/K5#L]
ME68( N9/Y*>-',"1=^PZR/:]K*V5IDHGD^RUE )[3WGL)-&\[]8(:V]P+7L9
MGUC$V#<;VG,=P/H"7Q^R,UM>).6*4EI3TX2AQCO.6*JA!&%G0*GR,2]'[MT;
M=^^^<*<%Z;H[ ^8C? ?\K\.TD+6)8)@XGA7DSHX<O)&#]Q;!+<E"_Z;45SO9
M2&\E(S].;,4BX[BMG5# J]6=2+R&%-SX.#_/#.B2LIHX]* WF#U*N85*!Y5/
M).[2(#A<0O:I?6"?)%CXLG)R*!Y%E"X[WA@-%,N0XLD%4QM/"?)@-T":D;Y,
M%9-/+1N?Q3]\)2-2%Y,BD@JTKE1Z;%%L%O*K9#PP(D*PW>2.TY1$?N1;]R.W
MD3T+>"F&;-M9(&":R&4<N8S#A:K?>&"6QB9VW>#$+.%YV/>>F#NQX^U7CY$?
MC/*@4,T90]R>N!-WD,LU,C65Y@B(EN]HZJ3^BWS)7]OE=MT@B;>Q_"&G6\Z
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
MW!/%KID=Y^>9&BZ4E$8ARS*94>%Q]%K"6LH8J*X.:D/10*L9&9!(*MP>TL
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
M1H[>%=X=O?],GIC!V[Y\ =G>]E':06OC[70$.N8N0F#9!_S=*7UG;O8X[/!
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
MLE$,^Y_S4NM3.<PS4JN1;$TMAAN-Q-;C=,PQRD9HQSU(+?+A$.WD(VH1_WK
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
M V!)KF=;C C<-CXK9F9UIC]K#I;?1T]\-V#?Q_\CJ\E6K=G32E-7Y%>EPA
MY]''_SLL.'O"_QO+=H ZAH:16 CX#V&+:L8K^ /X 23CQ#4"+FSQ1[5C"&0^
M<J@-WD93\TQK"E>O@$ "G!UJHX]!"B-@'<D#O+19$[>8I"\@1^%'IJ+Y5_BO
MH2"P-/3"PZ$&[[F%T?,!3.'[^1(*_[7=@0V%Q8'*IJ^?8"J".\B88<XT XIM
M,&'%UQ 7+@GX(JDX_GOOWSTH:@T1C,4^BH5_!.*S#/WZBD%0O:&9?09^Q-Y7
MV N#7;QX ?@+L)8@O6ZOYP =Y=A'4"Y B?:,^&-B(Y;XQ.(QV_/8CC"*4"XN
MB7+!< ]$\N*#4!YPYCFDOW;/^(43/"&DP*6[YD-(@D@("/J!C(3@IPL!_G ?
M%/CB44;(ML&?*.X7W>I"W>W^@D3O'7AT=]'8/4)I'- F%.(3;)(1B2(A^MM-
M]@=0*-J$0[()OP<_<X0*H4&C"6T5S1?)U=PE2^\)R^-K1N2:,O5BTPXCN;XF
M4S4_GQV0B-^FS"/!NHZQ"C>UOB97;30Q[J\&ZFYW\&NV#AQ*R-L#=O'3:4RH
M5OP#NMSWEWNDDC5BYWL;8<3.^V!GL/W<'#=O*"QDYP$TEF*YLAZ,X+AID(7S
M[Q6ADKW+5L@>K4#:3OW8%D3XM4B[ZX3MW)86@*1&+LJV",DD-Z:PGB=,@>3S
M7IN*N\-"__LSV(\59FPE.O4DRT?Q$Q1V8[BDO,;=QW%=!IFYW&4; 7X"$4L0
M[Q4C1@IQH0/5>U*(K*SX^384U,(KM^J0!8_MS(:8&D*M,&-MJJI4\JTKJ(/4
M]?IZIT NI^1B*/8:XRK;9K>@"@QW.-8X4H9+'RR'61?.V0KZ%2DN-56\U,=7
MS6E.[TY,A4F7#;(1("1\U!QZV]F P)?C97N,J9;L8:KIW0E<PD_+ !PL]]*(
M02'U].KRVH]+LJ;UXLV.F(%)PUUV*_PRCM?H1).IM9,-=NH%> E$C#V"D'<Z
MA*![594P9E=N3E4NX@-^05$V'K<N*_E53N0+[4IN-D@_CF=;,(5C7E^D)C>8
MM;JZEIS8._R"?)<(6>GJW6Y3B"_[*QS46++=&P4CJ<D8>00SZU\WG,F#! 'P
MM3"P"EIMHACMMFLO0I[0N&*&KPV?9^L!R-Y30/@>9B1>:( >-Q#R>"D^*RWR
M79QH]QH!J 1Q3LB@L. #7< UO"7-.OTIW$]@],U5A-Q?&NS+EH]J\?*DR?7
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
M-6=H>([Q_*?.>@Y^^XIR;ENDC('JZ@"1WW]TUC)GP@H*G"'K_/;5[)3C6-K
MA8MKFUG3@B;"X!%6!$(#2Z]S3PM+P5CNT(:1HQ:\45X1IPLJAVOF!EAXI7$>
M&[87BN$/[\<.SW^)?\'_#X1I%^\&&3,8A>CRW :_=S_LOQ4+;[Y](Q0?*$&@
M]#(:W<NH;6/1PV#?L79/W86:P9).=/ZW%]'LW=^$]QQ"N=_19/=['&4/?P>A
M.U+K#Z/F;1+#?_#N4GG@ZQ@X;[#\?M[I:V'?]K]G/92,&'$A1GS85!%Q(E*)
MG\6(#^O4(TY$*O&S&!&IQ(DY$?+"-71+[<@I"#J2U13X;1_(%B88*E!AN'DS
M56IOGO)]NE#M\+]G*5U#YVJAJEFE7IR ODNHHFRXLK4.J$,1L9.2Z44]2MBH
M]*Z4G+@^)6QK?R4A;PE!) "1 -S*!GBGI=H?;8('WLZ^>;\,'8[6<8=8V-_=
M#U$>^HQUR=<D2^B<J&,EG"&6&W1>$8E%)!:'8H'?<K\]O.7V'.UT"$=77L_I
MG+@0(D^^TL"(9S< (1?Q[(YX%O)@Z*G^G?5OCTIJ@(JU'-FY10B[:W2DAL:U
M"%.WJ6WY]W0 *D1Z+I^1]=1*LR5_#(NUA@^3.H/5H&-.J '.%JJM047J,WG0
M^';7T5Z-#RK81XOM:LYX5^=3,!3=12Q*^:5P0&W+JR-M2")3&+0F\0PNYFJ9
MEEA<)$%VCJIA$;(=3<;P(S./;A/<[@QF.33Z<&&4DD^+?+:X@&]5Y_3I6AAN
M,@O-Y-7%M44^V6]G.D6!Z^-@5%@+F<*HPG=0JP!"OR.(&$D= P2*Q/W'B/OK
M=M%/B_LPJV6SW*0VG)9&O=$RPP^(B?']#NO3B'MBP23+5:='B#)>%18+5\B4
M!%2?S_HA>HPC#K%);CEL?^7F":YESD$,JVBJJH.X(-N.7YV;&EKPIO<2<(0!
M(B\TYN%VO,.MIDM"14A5 "J=EZ8C09:&<D,0Y&&RAD]'&J5SJ2O;D/RTKHZ7
M<E; 9\.<.-,V9FY H$XH'\.$BR639QXM%L7S][*Y?LV7/*(@I3@#5EVCQPGQ
M)</P8GE8&Y:_#]YP&@4Q\F*ARHZS:W'A +F'"RMI-D4*@H:4T3&"/2.H<J0;
M]Z(;7W,\C^C&K+>R+=+(9_#2ZE'*,XVBRG'7=D!SN#LOMI8C1^AV="+[F+'*
MR4?4]@D=4(Z,,<G3PS1?R]GD94-63^=4WK4'&1JEOAUW<1=J\BFI,VV(37+:
M$H19T3#D.%7,"O*U,RL"79Y[=GLT%5Q>SG#3LI8V/=2V#=U$BHT11)1+_/')
ME>_E$J'$BY-9FJO6U]Z4S<YZ7C/+C_3DM0.CNE1*3DJ@W17=8JJ1<>JY$M 0
M\ /*)29C%/?>&/5(VN]>VK^72H32OF*3Y4T/=&O3>-'M3#LK8-?=:WMR14]2
M4R(@$M,X64L.*XZT,14D[2B5F(A1^%UG$E.V)F-U6=&&FG(OP5L8\H8W4]!V
M.XXB^A:)ZU9:M]$AR3!:K=F26'PF=M).7B^+<?[:.ZA+$36KJ>JV2'*C/&GE
MT\GB)B4E_-1B(D8GC^V@Y\TLAF;DP&6R*S>C?Z'R3(^KF$TD=0LTLE4\1_/Y
M%#=5FNGZM;=M+9=Q%G4F00LM;]AOUT83KM! &%G0226H&,<1/W.B1Z1>X76%
MCZM7I9,4%?CQ$)>EU29C#(?%NG7MK$=BY%%6/A>OB1J7MSIN*E<F*+2#L;YZ
MX>\.S EY?O..&\BN[ >'&)\]O%[OB2=[G$;_Z68JDR7FU=2TEE_FBXW>L,92
MGL0A#Y8FZ1A[]L/QT,PU.,>.>C.*<MNCXDZC"R5R83SFA3(CEO*U(6-Y?+UC
M-J NH/$>-!=CV?=21)$>1'IP[6$>I]&#:H*EC/*F$!?=:3R3'61LJI9/03V
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
MOQ3[IU[C  ^$"=P\B   !VBV+Q,. ?_/2+K&C7#1A$,YS/\E2NH&W.<.>O0
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
M W:Y@!U?L@(MBJJY)[_HA^S10,F25G/Y'^PYJ<[NMWS#??N^PT92Z<[S<$L
M"+/ZX]2=:4.1*HREGT^?0_MN>KOBMG9849 @W]9@;%3=&;<2CXQ!S\PJC/;D
M^+2S_MC^5$N[1V19_!9WB8>V>_SFV\V>JY85PQ43X2PC@7U'^SXQL; 9L<@8
MZ#YX^6&-XMX;3=BTJ .C,U(*2=<R@$7@B),$&$@MBB@8!@#![0[];QH6A.1-
MF GC^1>UI*C&FENY)//6#'NQS*WH^E;!Z6_RR:L"CB8=LI'&\TA<=Q_-.[:<
M(D#$6]5&_L3/+D0KEUSV?Z*4VZ^<.N]_RMZ>\Z$A$'GD8P[KKT0^!Z4HK2UW
MDQ#D1.*)N ;FH<L- YN(M)]+S:T[MJX]D:(7'V:7?'H=(75U394EC16EDCJO
M$N6JZO^E?*97:%1_!.B^'LC4:S7K-H#+__D5)1LJ2S1N<U;UGH=R+M(5?N,Y
M-+3\*OLANNRS&BY"F(FB_@I4Q CNT2/XV:F)I&.;>?RXY/KT])PA:)V@;EAK
MYGIO G(?Z@#5?TAY@=21J(D4ZA&@M6JE"TF?W5J?NW0@G=Z50.NK!RWL0_\B
MAM</H1XO3>[L=% IF3\#4DE' UAT(($/?FTMB@%P^MIL-&/X-O<=WM6WV72*
M+Q&BC5V;;"%J,.UT@^D,!&R1(90$M.0/F"A*WE-M<=SH27?@2T^Q_D<?ZCXL
M[6N-NV\RN';HY-$FRQ,/T)<:&U^)__D<1,,56@68HU.XZ2/T?0FS>1;L'9*A
MYS16[ER=E C>42_X-M][_NYO:=H/4=DOP^%9\ >X,FSKVEBW0UIO>X-X37G%
M5-4^IZGS(V*04M-'/@M[Q3'[&O,H]_><0Z]3;*\]<16E)&)_/%%-,G8GO]+E
MT!,]I76(RHHV"=P-*WGKKES\K0X14%8RMC\;\BKE=+YL2G%01@+:#1O>H%Z;
MMG"1@I@=U(@]2@YH[RO=TC<U ZB.0R!SS&4 %3>*;_99D<P1#TZ('QP_).N[
M]T..!>7?'&3L0"DG!<[%I+S[(4C)Z'#5**M-6!]P&43V2L?-]I>9CD,.G9I!
MK : B(MEBY9=H1.=.3%KG[2:+^M2AS_" $([Y: #]=7-#9S$[8B*6;?9'JA%
MWTTC59\W3L:^,-IZ.!>0U5P33<;.)A_<LQTDF Z5^!S(_-ELQ#,R4,9,2N-D
M*114@WH-*4(T[HD0D53A:O*B;Z03"X8WE/-^[9QH.8=S8:%?QH#/\]M&VE:R
M<-F?.:M+U;(ROY[-L*#5MN/N%(2*$]ERLT^(J@9E7*Q"'9-GS])PHW(9KW'\
M1%E&E.]$_WJ40Q%<_BAEGM31.02?A<D(]^>#D5JI>W[%ITXF\*B#6G5)0+C?
M2,,X!2RY+!>)^NG2ZD$+[>.XN%MW,JH&KIB+J__X6%T+13\)A\N\M_)2S:1'
M47\=7D_2LD,5N([">9<K)1!%X\6?MV\2K%<1FR6[W61CBE*^D2 T6H;7@.U4
MO_(H_;H%@#[AD!.IC=^,>H=J1T(T'QWQ)V8U*^K-#ER)HWLP88^1\JF"+>1
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
MS[NH'-LR3:YV .MP\!9_O..JCCWZC^PYM3ZQP%9.[)'L'?\%)WM696I!Z2%
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
MVN?KEU.:62>[FM?(EJO:F(?[HTYX*97V'_6IUOM1R)4K9DZ5F;M,/P9BUH/
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
MM/(<POAM&K!5Q7D&\ >;$55A20C=C8-ZL DVI@A.ZU^$:W58B/'.=($Z1P;
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
MA*2$T//2Q5C 1&T9^N?W@E\%!1-5YD8RG256?9>)'L:/O&V,3KS>. C#Z+
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
M2FO=IVQ/3[GYW)W:0Y?9?<Z)-%4+3X]&'B!Q!BSG 5;&\=BE;S /1WGR /X
M'I#M/(B=]WP#%UF0RX0L AQX1&Q6@K1=9T/R=";Q$K?CSF5&A^^U/$NLQY?O
M-[_KM^&<4Y;A(22]4^V^5C'Q<+U]TE^J8(&%]SH+&JKA 14Z+<G^./'WKT!*
MF_7"\Y<2PE4IZ**S:*98M'DW83\' V*8.JP:)O=K4:S<<(*AS\Y)'G!B4'W'
MMJ[OWW,JNK")Y%HLK>:ZX'T>((QO/>);4IW',BT[ OYR.C,SPK%=?D9DV!+3
M)T09NY<2(X4G1>>B,.Y#BVHDW)NZLXE73IQM;6!LJD6138HEKD*;*YBV;#.X
M1(4#XPF#+CO']S*BC /:(]>9%)8$^(%M83F66TX?)5?>2=__,N5(F^-*<T#)
M%:Y=.]'J[#<Q;]5!,W\MV6L2#\^6B<5:8HR(S19FB"D\0.@FJ"9WNOTH*9L=
MGF.]>[&F));JB41\?RL\#5R]$?9)($K;[IDL( C,".P&9(?.%F==1FTON!8)
M4Y7 'I![C:'#"OBL8/?&J&@+4X9XWNV/>+1TK87_T_F#YY CA;VH+A+C&%S-
MCY]M?"IE3-/W/ YFN_L8;:0G[L:LOWY%+XF)_ZI$JYWN30(':#[SJ4Q_UN.F
M G9KG77[U\2,Q+5NIX,9@>;$L"]OUCK\B%Z4T??XL>2I3]GT4T5VE:[.5>)N
M=(ME]ZU*<,V$Y^?8LD<7\+TU-\VVEH#H5K>0F.(1J\=^1I+/Y5FO]GRV1B*9
MZTN6F$P6D7&(FJ#OFNC#7(I?6+3KR=B:'VUQ-YHL#X["9^D#.,!P/T(Z>49+
M1\[O)*TA;_\F)0]#%=?.U)$-)+[)I/B)^1,DC0QN+[U!V#E#104:4I3\Z[)!
M'\=L9=7X)](_%#LG\ATBWST/$S&A%5[%7T^Z%+3=3DK.T=;:,5IS%7"TE@6<
MG(;?41C'<.,>G:PS#*5^ _\[+RVVS$E)>5_<9U1>)-Z:ULHN7E,;BS;SAD1B
MV*'JT09E/3<G! 8/,%7F;<PO0&-'+WEY0@^E^FU0),NH.1H.5"]3X+YN4LK=
MI^[H9<\#7N(\$,_G%)JV?"8;FMO\</C [BH(G\Y/-DMKR_7".=F3"? Y#R=V
M?>/LY0&O8HDSI<7HF9#?G$>1Q=(JOA &KRMPD^6I&XY!^*HU$#[" B2XR$IZ
M*?.NU7#!)B<!*_C1/$CX\Q1Y+)U>']8#%VRF9^F+U6I![:&@G>!G83,^O96D
MU1<^D- P,QGW*C?"W+MU(^7=HYO"IB7[5&*T4X9'L0Q;/=*H-,P QW<L0<DW
MFKZ;:R!_U< <ICV)FP]GQME?VEG/X $)P?XE E#.9;NDL^ANV:=]M]-XP$%3
MEU4YQJ9)UEWF.%TGCA/TB)PC6';Q=1=BGZY#OQULR<['8'((>WA L^NG(N*E
MQHAY4S-ZZ:FH"A^\Z8>EI8H/7.U5;4A82666T"5_82XT8^Q>5TW/D7RESJD"
M@.T!8X'^@!U+AX1]F)NF CM[%$&JW7"EPQGC4PWL0[I?ZA-E QP_">JWA^,Y
M^T(G.[EB$RH\@))%9!JR86<0C<W'IF%1:]AH'B!K2$'Z&QNM7\_-WM9I,/3P
MSDB.>,?EZ\H;/K3I?P3# \.L_ELP*F#!\/I+,-10HFF?6^ $[&NYE19JQ.&/
M^(T=VBQU2)@+BT00HP9JAI7'QAP@!/& UKRF7>A?^0W[> !Q.RSC_FOJ+%?P
M^--(21!%1_-?7)<\<W&_.3G38*CMSLBB>LK*1*.[TJ._- Y]BT(KM\*\#L:R
M5*H@'/XVZ34/F&^>Q(R5=@PW*3&^KN7<^O[B?KV?3J+0"5U%1521_UH@)*H
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
M_=,K?!!P,EF"%]OC++SN!_'H]3R*EL%>"$@Q_Q'7F><._>N_DBAV!S,-RGG
MLG>O&N?P]9: /G:A5_EU$E.LHT5_U7KI[RDGINH'G@,/O_\Q A!BZ^JJT?GI
M55\L6*/)0Y=,\TF6!(K&P?@:E_A:XU+B*/A])!;4:K2N^'@)J?.,/ HM/XA&
MS('%Q6'"SRP[\(+PY[-_-.E_9Q8NX.>SUIE%+_Y\=MYL-)^?*8#ZS/X^#(/$
M=^KTXK5\[W7^+[4H6./BBFCUC0M8;3\('1Y>^X'/<WQC$:E^/L,]G8J (O>@
MHK?Z;P7=6ZWE9/_CYM/-A_=_O/]T1T3O+UW9OWGH,)_EEK!B/.3ZUN7K)8.M
M?>W6>O?Q]NVWV]N/GS]9-Y_>P7\WO__G]N.M]?E7*V7'@F77CJCZ]>.GFT]O
M/][\;KW]_.G=QSNUU*_O;[_]?K?7E6ZSLU<M^_.7]U]O<+&W!]G69A\_6)XO
MZIVUVG6>&D#J)+3^@(TZY&B0*<VS\,Z:;:U&2K?QBB%R#T?6.S>RDR@"G%K,
M=ZP;,+MFD1M9P<#ZU?7!6 2,6&\#WR&\TS-?>91X,3WR><)#AE]$UHO'+KK=
MW'+1?[S['S:>O+YY](2M+2=\"7SMQ\P%*$,^X"$'$SJRXL!ZQR.;A3'\D41@
MZUGQB%M38,/(.A@RIKQV,#P<#JHD.D6H@B0\'%2X4R,7!F6AY$G\!#D4'#<0
ME)8KN3D$)PYX^6@</ N24R3V[+C4;NS1>WFTMKL; ?,I,0[Z.0H$*Y)0!;Q9
M ]!*H'=FX$Q&#>MS_A.0QN.QD,&@D7[E_3!AX<QJ*8BC9+(X]66#C)Q['B*D
MGH0$K ?4@J!PX:6-2 :%QYD]$HM C'/?H37\B_FTA,Y!UH![=!!X7C#%'8N+
M6411/&*Q->46"W&_3P*8$9Z%I;H^?*=AOV9-1R[ !*!0,$>#I69A2*<V+RA8
M1"LXV$:R$Y@9'M# .T5Y(<$CE)\@> C7X< *0JG/\C*1MLDDY/=ND$0YAMJP
M"UI'WP5+5WV"?))M@]8I@H=PE6 ; .OFE:Q4%-*Y<:S^C-B;328>J*J^QX5:
M<9(0AQ.;A?20IG-0&S:L7V%2_@-TB\=IZW0TU4Y#^K"S/ L<1S<@#8H#SFVW
M3FJK'H[OP.R(1];?"?IS(:I97,?A2)5'DEK&"O14Q[A3@A4^ @DV82@]&84.
M_F A?-Y61H8=W"/\:/PI9H)'%XT1>!G,/S$0($LP[]*'6\1$\$NS8?TG2*QH
M%"2>0]X/X3BU/\$D O_^K\2W*<1!23!<!TL<%S-<\&44>*Y#Z:Y!&A2)8O@
MHS4@DX'G*?U%9A=L&H+ B_@4]AE/;:X;P?I?R1[#U=^. (Y1X($[5FZ#_4^N
MR$=(';@@$!!%FU&#C^N8_N833F_QB4,&C;[='C!<Y(!U3D(5@ >8F6T'.+3-
M!7-]N[6&W.<A\[P9?LDGB!)\*O')3I^ E+5=D*"'Q-"'FYLOA\-1P[KQ/(DH
MBXT1\@@=EB22^T7;H$SL(4";\ 7L6<U*?, .O>&"C+2!FZP M=K4C7C9M]*(
MW?-,'.9 )?Y(];!2!Z!3Q]9YJ]YJMG]M90\[H'R]($I(=?^=N*'<<QSV7]]S
MHQ&,GO@8Z_G$1$;=^NA'<2B2_F*\PVG8MP$R=X(V[+MLX9]AH4,10CZ<LCW<
MIOKT4>+Y@-)'A@C>PFB.RWSKEL.V<6,7I,F-,W9]%UB Q4')5<Z-X\@R$-CA
MH&#'3"0@^D$2@Y0 A\RWO83,(SN8('  M]1)BL^T#0*O<X0ELJ($[ XF3 UI
MC.H3X&_D[;%[!C8SFK[P*3X\Y?T(E)<%*EXK27%4#J !=DD-,!\&R5 8Q^_?
M?;CYNN*UB-N-87"/)KK^RNW[=VM><5B(LY2;;I%B0(>$\F ^WH1? 8T&X%C$
M5I_'4\Y]ZROFH%AJ]G_['C+7Y]:+@_H :M:W<G4'W+,47<"T&O(SZ+H(:.$.
M@&[P&ABF/,3T4SPC_2#5X] +^L"['' 9C&>H3^,1\=%4:A@PJ&>6!YX?&;%
MUV#,1=R2-"7LCI C"=!%1%WJ<& !?QBI2;A+CP$%)76(5U/BU&0RP49E@IO
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
MK6WJUTS]6AGKUS;GL2=XF 7E Q$JPJ ?'J<>I]W_+!EVBZ3]F[/  TSBHR4
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
M#D.'=N/BTM#A^'3H-3J&#,<G@]D.Y:"#V0ZE((.QE@JEPZ[5^9N<AL<"W5N
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
MJ^P'NW8_H=KNMO??Y>KT3@A6G5%TQ;:2-5JM1OMP!TP-=U2+.YIM<SZT0N&
M8W?7.D@\H&3=M?8=CCM2]ZSS2E\15)KN6&7CC@?T,[HP%R _+7J;*Y#+Z_L?
MH]U\&:(#!P=[I7E_VF"7HL6QH;:AMJ&VN02Y8N[W^R0,)KQF_0&@>+S^GD4Q
M'6"Z&80PD/4"(6LW7[__X_T-_=IZ_;*:/O>!0_7EL:9W#[VWVE>-9D4JSO8>
M+"T/(;<)?EYUBX^,&^(=B'B]=O'70IRPFCRV45".P/6QL5"26'9E[H1Y1'B[
M4_SE$%5CGKU&O$O-0P\(BK8OS3W)ABL6N.+<7)1<6G?\6*'RTX;Q(,[ T>EX
M^C?L&CJ>!HQ/@8[&_=XOM&^9SQQV,F[T\2O)RV/4[AZQ[ER8&Y&K2NUM(J/M
MJT;WQ&(?AL3SP8I&QZ2-*^.GEB/X7>Y@Y:G7Y184UB[\LOMR<X4IVEZ9_S0U
MVT^)W%>F9+NTWK4IV39EG::(UU#;4-M0V_C>Y?*];R*765^8[0Y<NYJ>M*G%
MWMHY;ETVSDTI=MGHN$U L]5I5#JR\=2)US*YX,IXJ^6(1A\;"R4)4%<F%?6(
MF/6I92-+%L8N-0L](-39-878ABGVQ13E\+=-'7;EW/!C!<3*VDCYD+'0)XT#
MPP>&#PP?F-C (:"]F_/W3\37/WZ]>'[;=F#;.D&"UT6K?5N1GL*[Q^2[[6[C
M\D"MR<N)W@-7,I<:%P5'GCO=7J/P-K95PZGAK_WQ5_O<M$?/632O8@:T?B,O
M#BW'ZAZ[BJL\X_R51+$[F.FL@_^UVNL"XS1.XWPB[R3;%!#^*DTL:Q &8RL>
M<2MWYXNEP%LWT=F;*0^Y]8PN_[  :,\-_!K\C3<^J+^I/]TS:O.??N3ZV/>_
M7<.?+7H [_^I@=T73;B-5]UZLX9U!XMR?3OD+.+J%8M%EAV,)RR$I<:!&& *
M'TY"%] %>+<8#I-X,::/@,NG\0A?!IS?NS8 %N8 ]_F4YN<_7,"Y/[1LP'TP
MYF%DP2:R1S"9'X=N/T'4,%^L9XSY*<]ZUCIO='68Y-!BY=G4M.[\&IT08/2M
M_LR*F =K@:4&26@Y+&8T(T>DXT6^,'(DQH.7?=N=P+SIDH(048"TZS./^;;(
MF.V"-?FPET0( KS-+'@H!KZU)L"D@8.?A0NL0F/>V'\GKKAV.&J4=S> 3[&(
MD=82C#37\-$2/ T2;R.2FCDDU<00*%P5=\"+JSFPM@4+]AKGB@.7;IC6"B@%
MD0'*8#"(>(R<Z 6PFRT0%]R'UQ4\):;L ^4<-L<$\(: LNV$G"6D'/59U*0<
M-N_+"SGL"+=<QM5V$W(;))R3</QFO\*MW5LJW):M_R&B+I5N0!,66V!SP+A"
M( %M$H^!=)O!K[!]Q)HD3+^$ $W\.)&88ND!XG&;;=\ZHFQ\H#C<018N4Q$I
M_A%/JU&Q3*(].Y\788_0="L >:CXWAL9M[XC4A!M6R.93&+XH<:Q/<Y"= I&
M<K+4:<))I4O0;#[?A_>3OQNQW5T4[JVFMFKQ<Q2J560^2MT.O""\5OZ;!E/^
MBY&0^S#^:\_U>5W^W5P&NOS(XX/X&ARLG@KIULEGRW^$;F1'.$9#7N\#NWVO
MLP' =LV\*9M%$H^]7J/=3</CXK,F(E:CQYC]J&M8EYZ6O@SUD;Z.22!8\#KD
M(!9!FBZ,FE_G'NBZI88NA$_S*%H&>^7-$-4-90?K WMFZ"[6E::=A8=UV>@<
MQL$ZB/G16>-:[5WO%^H$'-,:*,)3VL$T4.\ZRHVH62,6.E-XG3AA$@8#L/(
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
MN\I4"Q55Z$Q<,90:[JI4Y^1C*\*'5)]5,'1Q.L&*(\.8<R:.+^".0>2+IXT
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
M;CR['KF.PWTB5J_=[+S65_?855SE4?A7$L7N8+9F7=JKC7/Z^BN_YWZ"U=C
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
M)UG!)?A5;*T(".^XRPM<C6:4G&?S?%)DC0*) H24!O$(G1=Y.U<TLNSC,F?
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
M_!-P8C+A6,W^Y>3D]_WD=_X%!PF'QG9<-*CEL"B*!4YT!F0N+]1-)*D@(I/
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
MW2G#WGC:0_O@F#<2/9HLDRHA)@OI>&I 8W:_*PQ8<S-IY/AF^F])8UY;KI=
M S0KE*X(SU+"%O ))UY"UF9Y1*M^8]#*%3$-. S[!<)?GF1R#<:>!]5SVRRB
M7JW#=UE7F;CA6'37H5\4Q&2G?)\T^*X99YMCTRB0,:DB.%K3,(YO?#$JA%M+
M4TN^U:03\&.+!7^W%LSG@+.OL V7(O<E^SC!&LVI8&$U5=+LMGE_5[\363:T
M'*XUX)0!*^*1^2%OOK\.B\J[A/VPYWNIG= PWWF.]#[N:@^UCHO_S[,R9?SU
M[&,NRIQ+.;$"9/A6:)+I(K.L,U3>(I,S2B/IK3P/PR/$[P"PRJU"T1*6FP5I
M]NDJ46AHZ>,!_B&8A\BP99W=J=ZFPT;MX-YMJIT+?B5/KN_\.E&X W!I$ER<
M<Q4L!?J)UMI&F)DTCR"($R.6:*QAC:6DT5P_(U'>D#(!\9/[I%R-D6B-2I %
MM,C/M*J7W49!;P(.??AOM+5!F'+ADRM<^^K-*Y(Z)./4KFM(('(5$YSC7!J+
M@0(SL/ONEN^ M;<>:.8VX8>>__OD]2\ODU>OD^_I/Z_>O0+TT(LWOQL>T0 ,
MT0YX:,OHX3/TRGO+>C2L44-)#1!$ZJJLD)NLC7:V6N'Y.1O7W"/TZ.#PL329
M_OGD]"?#]SWQRSKEHA$H\^^7+(OPQ-[!T1WVO/LUX^8[WTJ_O:</C[Z[LQC2
M'8;&3D[?V][>,9BU'KJOPQ9<1.VI9-GWHCF==;G 94T[!LBB&3\=6<$N&SC
M\U#[J4+NU!UNX',0Q]WV121-I.-[ 7N;S#8R;$7O+]C6=-M%FHAO&?GTX5VV
MC)3K<W=71C1WJ0,7_[&#O.'B(]Z8T+7&'X26RWC%92J9NH47*,XJA F0MGF.
M2MB".RN1G<'(G$C1<WGL^LM^GT[:]/U$60G[(:2+LA28C+/><%G.)I8?M3)D
M+S@;A-+802:I))SK7#DL4/52C33W&!JH(8DU'@ &L#7]!X*8+[N,7I#$X?#^
MX:.17C9QQ3!$*L.-,7 2FQMLH-((J-@+>#RW@3Y\EGSK098.OA/SPT+C)L]L
M99+SN#9"D,SH?5R:3*-)2UOEL. N!O"Z"::$)PE:H_>#985+]0):V$JKFKA
MG+8+WIUIKB!_D8-+>QZJ.\Y5+?#>6>5V@.7BZIM2H=&1DKY1WD2-)@] +]]K
M]\320P5.TB4K*?\18C7F+,F,TNF,O=12OPG4A6NOD?V[E2]($^CWO6JVAVZ<
MW[Y]\_Z[RR\O%^S/R0B4^BN]C4R:,IU@5=BHPR.ZX&4[YUH97'N%Q)E6+N9D
M5"E6G8)'E-Z[1_.E>5T^K6JVRTNXY;R$XUU>PBXOX2O(2_CF\&#_84*S*-B)
M-2CZ-C,EZZJ@S,WYFZS8LW2ZQ'6SA*NK?AL4TVZYG?E?79E]JHUY>'R'2O+/
M#F;R5=FT=2=R_"^GYU];:7Z.[H)M\JMTFE13]_CH\7<_]$NRXU]"SQN:^E=M
M(1\>?T$6,KYCY9GTK QDSKKZ%MG,1&5W:#/K&WT]*_9G$9"XF(^1R>C2O29"
M^T$_5@\/J]H?-T) /8>KU8 Z'+YW6:03?:\+'7&/7.R_(!SXLDHND+">/D'>
M&7ZFWVED/%B.]JU7*V&OJ*H/\I(@P:7R><3ALGQ<PT_Y'LS,9Y]J9AX=A&;F
MX7=;+:!""Q@@-&@K*W<P)K0E[6M:YVPUD4Y[-F>(+XDNJ@>X":#IK)6L@KDR
M78K^P%E07&./4XQ?TBL;Y*0:R407.B.""HM-Y"&2EBDCDO5@URYY4=246/&S
MD8"IT2^_#"G0#]YY4>=MMH><#8>-$WPK+[F@6S>7V'D5H\V.<"7A2(E3RT\%
M:#!J"VQ5XY+(,8K"T HZ/5XAO"G8#;!O-><C#?$%PO2OH,"Z %BX)2%:6I'M
M5[/9+X*K.*0<$LE?[1?I0<-* LB"L10E3\BS!@!K2V Y*UU7FF']$U.Z6O_$
M.@?AYSDMABYKP=V4MU^93$N+63RYL3[Y9._@X1WJDS[9X2ZUR%\<G@E1VQN^
M:*9*/CH@5?*4B**@8S!J?6>P*.Y!#Q3U%6N0H(6[TR AR-UK@=Z+(X!+"OCX
M4"J(:*58)P2X8- /!_000]?$(W[1ZL$@M^7V%&'H1*JE:MH1K51F]<J/L\X=
MXR'^/CSRI#NC4312<$,6^70/Q_OW8Y%W]_)7N(1E6NR]ITMW6LW:"V2N?WO:
MC5OCTGL/P:B?J])TAZUZ3F(,^E=(?&+L;;Y2SQ%3H/FKF<2PX,^+JIORY>WX
ML9, BO\=F, KA#I.%<SCN2K$7[%<P06Z![F"UTH&3:,J/(L1W__'A8O8"HT/
MEH-%WO[E@R69P <:]E:PBHS4H;/$/0K^ZHL9]IB[^+#_<RQYL'9?8%$W>E_B
M=>^DWT[Z.>GG3DI.Z8;R[]G>X5VF-84E7*:F/WDXI*;W6?- [==7R$UQ'/?
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
MK@G>\\NOKY-O?:VXW3//7=S0WSDWMF^C#I>M$QEBJF!0.((G*]L)-5:<)-,
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
MP]I4&\E%07L!8K 9\G$T:=#3K&1RU2[K&4",DF<I-99*^TSY)5TK(_\>U8=
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
MU@YAM7"J)S8DO8OAM6%XF&>(9-@Z+-OQ?)=HD/T1U(^W^FC0Z*[S]K\L=[.
M!F>7Q_>5K2)#9E][5.@8!:1LFU+AMQQE7\R9Y8YCGV$1R4QTAZ5WO8B;Q&$J
M(8!QFS"AVR1J%'2U?.A;SNB[&HH*R,#Y)4"0]$[Y#LAEYV2X:3&TM-.WW[O7
MK21)<F7-",XQ:+ KN (WUW*2>3&,NG+0@_&) U6+D39P]F33IJSI"YXR6RFS
M]6!ZKTU;$W0)/<N$L<:)W_=MU!7'RH&;J=;]#YN][.4>6A1M_?RW9)W).N]O
MG3]HC^Z9A;%=A$B-#L@QH&).9JI>4\TU @G>8G?_8<SQ[Q1D_,<$,DX@XP>
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
M9YV*^4=I:NZ>+YO"9!^\26&]CH2+YTK#@A?AI%_A3MR0!%8EYG5I9R93Q;#
M1*4'L5QHDOQQE:>;D@/',R;43#R?+P&&ZHF49P@(/5Z-@XM: &9!%I+73U[M
MZ2JMWN-&T7$-@1QI*11AU7,ZNSIO0N="'4<TNMF8^ ;^).?%JO0X%]" 3%8D
MI9)K"+SF++ZI!-9+9"L1DXH*V(KL1E,@D0/_ATS.I YG)X46&IWHI*O!Z2XJ
M>+.@4:2A+GD.S@SPT]%,X9L%WX/SRO0;EAS[C>C&^](:U>Q>KU8_.-=3#>I^
M*5<K]E;Y ZG7\<*)VUX>Z1D.G'DN:%'FGGP$NPT.?:$(0>K4R,W1NEKKH,M
M3_!"%4U*&.Q(<&XA+:T@7JEVK?DBT2P)?!A2? QJI0))U4 Z"WEG"K$'7FM/
MEJ^G "9/O]N2JL7?:1.-!N:L2 R(8KG-GDX]D4(XGPS5L@DY5M!B:#J3?\6*
MYO0S+(Z^6?X=BGTK\XCXU\D,PY\]]#@CTBD?15 <<G";KCTY\X4.'!<H5,'>
M;<G()/>F5&J.=Y;[5B1$,3H;(O!BN&\6*K^U'4[TKGACZ=N:+&#K2R7>G1YR
M^M\&\VVBB^WLPJ0SN)%M?)@^VI)\V*'J@S"AN!7QAU5_VTL8Y=^>]=[UBSN\
MMEY;.,JR!BUG<4=^\S:O]DTO!W#<K" +7J4<5[+W\0*_]/8Q79?;0\252^=6
MJ"K=]C*&Q"]%D=@/;:5 JLQO:2F15K[[:YY=2+5RE'UQ'SFT337@K0V1SR#T
M4=Y[D"(*J')C)AY)B*Q4S9+S;L)92F8??T7C#E/_-,\'G<S%YT/VA%HZ*WFU
M6>S2; *38%UUCNJX7DC.KZ3W*_?,8OK"3_:ZF^=YLBB1T\IBI5$1):H*"C.Q
MGSCGYZN2-QJ*ZI5K+I=MS*=C-<^[C6<&&2F]8U0QU7RN&3W6[(Z//37<C&N6
M%%2.7LZS0*OW1FNYDV;P:7(84V!4%CJ4NSB=W47)VPM1A-07#Q#H!JG@UCV,
M,$7?];FT)%A*-5&RZERF(A]N2ASR"=6,>ZH/YIM/>CR+5MG7AWS=ZM9A" T5
M:!'IFB-'-O.J/H*^\RHPO=I!METT1BU#F(/.I>C8%$Y]QM\&7;1IP\&A_!&%
MQU"#96\VA3:8JCK=\/ EY''BDKIW?EJ&+-Q$!FDT)OL3)D]?AHYD6K6N2=$J
MK%<<B198S8J;K_)MG EPP*#6W90G^ZWP<N#G5 NLAE'RZ-2CU (&@G2N3'E4
MA';7;Z=WADOX)Y!<7Q Z\%@80PJZ^!P/GQ&*ME2G=MMGT4J5&N7(2?5X[[;:
M$U]!J(YM)<BM9EF4(GL7%*ID9W./_>PFC<_U,6\H)P'=RN^KHYPQ\E5_H I&
M2"%-)L)/'*J-7I\;UVO:D!#@+%?@]L1AIZU%GYQ,M!Y+B.XUJ[T+QSF0T(L+
MXZ7$QZ%Z]&KUP>,+%A9)5L=H1]'FW^SHQ/3K4"+\DH(+;4GT%I$DMBUS@<.0
MX0!GA2KR*-PY8M7OJ>*RD^\&^EG3$T,!AG.JW7BT<BUR08(,N:^RM2CX('KN
MX&<F:2><#: &OL/Q14V-<W1NNRCI\+KIP_L<QL<U=U +HRU1?([_.U=K8Z1,
MN.#85$,XABP9C84/T+?]\YS*3CHT&&^@*4N*#IT5[,8<!ZXR'/TX&L2V%EW(
MLS%+OF'OGJDN)392&&^86YEO&]WJ!&(V,(="+IRCTN4A.2L925'V^"EZU_5D
M3 <OSIE,!V^,839!;(KD=J*'\G$2:CO<L-*B9.JFJ^<!X'GI3<JOVTX??NQ9
M\GV@K+4+;JB<%GFU TZEAS*77$;Y*^5V>4\V ("H<!ER.?0[]^7M"(WM]G!P
MHT9J?.SUX'(I:6SIR9'R3E6^1Z[R_3E5^5*5[W=0Y?,N*4:O1N#-@PLR;*^
M<VU/![0-@+8/!%^;[2VH OB08TE%,G2/*%(IEB>.V<]]R\/S"ASO%&V_:4GR
MDQYI3;U*T$9MKJNN;7 FJJ5 B0F@Y'&S;U$.!36"FT@_'5(@W=0L<LURS%+F
MT/-.?&71@1"-D\QRM_>;?8DHCT13^EX4H@G@Y<+3H9H&]9J#9WSN#?SI4@8R
M,E#.5K:5-@0^ZPSIQWUI%V,_'J 3!#DL5"665X"3^ -2-JP!AP(A(H;CN*Y%
M4Z!'W9PE!@8O(&+K8_O2G+*G.5..DW9TM&@DF/Y1\C10J/65;Z/"=:,Y44//
M[BRII^-4SH1#8H3A^>B\3NO6+T*['=K"=(YYM!4G.MVF(T!%A=#&AAD(0;*9
MD5XRR%7M#C)"J\XH2P4]6+BK.Z10>.=#;LUE3;-F,_D9;64RE23[ A"&DA%X
M87I-;6 *M6"TFPN&K8)!7;J(D'<=68&%.6F1575CP_=N%#*X[TL9*8?@J:TN
M#B4C'V&5?. ^7ZX ^&L(KKAZ#;MP8U5Y6"X64(VK[T$COXVH8SC)#X*92X:]
M/GLMD"#R(=4TMEN+*!<-%N["B]4CLILVKXO[U,MM4J.W5CL--^=-#10XEVXA
M:EVOG V*U! 2=0*CY,9N W,-^M-SN.N+V?CON7&\L[83D."\'VRG_6Q<=[G[
M=)N6S M.US<.3%;%^3FYR6RCN<L:FS97>!VT*JC@ WF\TIVOI17;'&VY_N]O
M,.7"XZM<>!#).%Y\#B_9Q42DAER*_*;--:&R@B-Y4+UR7VC*D_/+;H&&DW,A
MTR(V3Z,DM,Q.H!,DLEW,W.<^O\XC8;[>]MVA/\.O'&4\CI)E<%ZPK$"0VBA
MZ.3FS'DGKSQ' #(5Z1)_[J] O=WAPAXLI_)R[ND+]LLS[1ZNL06(@@O?*]33
M34E?L6MLM_-VY86VZ*$*S,7<4KZ$RO/@NLQ[AJEIQ!>0:"M<I^W,/Z2 ,WDY
M%DSJHI"]1^FM?B@W=,)G\Y0[^.9X3J\!,G!?'_<"]X&W"_@EW_N][MJ\T)>2
M0!;' 7B,21"4Q;8BW>:9=IIRGVD4D$FYY<O,VP,P@+Y60$T[UY'4(-D8"=PO
MO4WTR;8L1 BP,5A29<SS.4/+V^.3U@$=@%)VZ_X45^!?K?YZ>8DF+6R+_5N9
M\8'JB_SZ53UGJ+>HFVFKF*R=0  $.\K' ,(D-= &S 22-Q_636VM56\;OO/5
MWEDJQ94EYG=LI&A%16Q+X'"Y1Y;[8O6$)@*,VC3+2!X@+2AL+T\KP()RTAYL
MI4%$8L6M:9&>--;RD\N3ZJ%B>41T0^?X/Y6(-GT:!Y^KE%H_'KE>N7P)5G&4
MMM5@/:&WLPE4\;U;+>3+*>^.OMBE;415<#+#Y4!MM5;?#8UV6C'@Q>1.\\4A
MMG38(J8)S*G,3""QR,RA-CIT< '9UV7)UOC$+4<'Z@0*YSS>,"VGQ.\B$GV<
M%!3#&A1ZJ%"7J$-WCO&5R70!X(YTE[0+TLO>KVL!*7A=W05*"B\(BKC' #GG
MX'%%^D805&/YSVOBF1557UG3!1C!:F&)0)4@[D&[L/'7&4?,]/<LU/ED>T%I
M2[SJ4J^V649RUPL+"$U6]]M!FVP%@^-[45^M?I$"I?1H^@?"P!D='>#<W$<K
MP=Q","A!>AUP-;(Y+'[=[S4,HI21\NNL-[1#_1 ZI4/K'=<0^;^47B7)SB$+
M68@%>)5OX#,L(B4;&K6$&Y 5D#<7Y#E%=FPC=;]&VT'*_TP4<^?Z'EOG[[3
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
M&@Z_!,[]M!OZ']J7CYXSTQ+6:;W2L"(9*E$P'JF(KKXF;I(RR\F,/)QS;\C
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
M97@Y.60T+FAT;>U9^W/:.!#^5_;H])+.8&Q>"3$T,PE)VMPEO4Q"IW<_RK;
MF@K+)XE0[J^_E603($GS&-+7P P&O5:[JT_?:N7>;YYWG*4DBVD"[P?G9Y"(
M>#*FF8984J*Q=LIT"@.1YR2#<RHEXQP.)4M&%&"O5F_5@MK>CN?M]U!4OQ@C
MLA!:?KWE-X)& X)VV-X-FVVX.(?MCX/^&]O[Z*_^X)^+8S?KQ<?#L],^5#S?
M_]3L^_[1X,@UH/@Z#"3)%--,9(3[_O&'"E12K?/0]Z?3:6W:K DY\@>7?JK'
MO.5S(12M)3JI[/=,#3XI2?9[8ZH)Q"F1BNJWE8^#$Z^#/333G.[W_/+7]8U$
M,MOO)>P:E)YQ^K8R)G+$,D^+/&P&N>[B2!^;5_I\\:8LT6E8#X+7W9PD"<M&
M'J=#';9KG<Y-E62C=%XGG&FAI)QH=DV-[ 6I,:=$AI'0:7=U@KM&YN6XH<BT
M-R1CQF?AUH"-J8(/= J78DRRK:JKP5]%)1MN=6UOQ?ZC*!K-T_2+]@AG(Q1N
M=.TZ^T-L _.M-]P?,V.T-..46MLBP1-L//[[_>GAZ0#V]FJMGA^AT_(74#%&
MO%*YJN/.XU3LBTP9O(LAG&8)S2D^L'A)1TRA5$3SQ23B+(:#.!:33./ZP0F3
MXS6;<Z_R@Y3"H2 R,1H>,4EC+:3J1=*V'%$5$ZEQJJL9JCM6\$Z*28ZFQ+5O
MH=TG"G'A0"U HT8315'3T$ZN2<0I1$(F5+ZM!!6(*>?%)IB754[BHHPC)'Z3
M4N=K*C6+"2_6V2XY;L'N-&6:>F8@#3,QE02K[+YHHF;E+@N+Q5^G!SS<AUJ,
MPYV;&D,)Q4QFR)V37<W&B+8M[//[JWJGV>WYIMG!Q]?)HLG?2WDQD2!I+J2&
MQ'+X.9%Q"HTJ6 X7F5U<L]:",]=CR#(,'(QPU!$K3-10!J0/X1*VC:C'>:O3
M: 2EN_IBC$%H]NB!]7+@FRH@8M":&"5(A@"]94M$N F"H%)*T0IB#?F#9!,B
M9]"L%UX@66+^8-$(L+2+8Y<$+;M"Y%02P]&JZB:G*<50=DV!95BF59R08"52
M$<5-_4C+ZKNE94#_G3 ]JUK-8J)2&'(Q53 4$BA!BU$'H^H,8XC".6U!IY)2
MSU0!JL=$ H;SDEOF.JF+EF;"K.AV+#A'&D(S^,RYXNF+^2"2GK7,J/#-IO(-
MF?B6@S94],M1$1T.'08SJE2)\R=2Q,U&,IL#HST>,,UVUE)P$+CD"\AT&IGH
M?P\YW .\];AMZ3!IH641R.QA)?2:.U\+TB43.!)DQM:83\R6+QCA($-;.)YY
MK-/1P2="CJ$5>"<KCK7$8LI#AOS.+:_<PQ[?ZOA!N!*K9Q!#KA)ML=0+T0P7
M;XA'.4/P:(^:H!?<<LXYT1WWB@%7)0G!]@=1@V:SZ36:>[OMUINY;TZ\>N ?
MS GRP>'M=M#9O1E^Y756/.O<95,*1U6%WQQC>89R2:YH6/Y9=)%9_-0=:DV*
M8 ",LY<;RT*&3+0H*USV86N68+6(,]?'GK.--AXG,S$I!BVD(!6P=(A9BCV"
M6]8L-2\TJCOVN)=)'1,40MLH\V:Q5^ES(2M:$&[VJ8EZ8<H2W WSLF?(.(PP
M)?WL3=&+#V9:!2?9B<NN),(H-=%TR>CUP_I.RG8=L?&:*18QCH&^M-'15[!"
MWQ8]Q7.9RE>CERBC5+W6VOF.+K_MYS(,_%+^7L)XJU-K-S<P7Y_;;;C]ZFGM
M"1SS B;[RH<_+\[?P=G9Q5WGK&=OSA?0%0^%.T'W]O,1>C\-Y"\-K<>"Z6<
MT+,-^S$QMGYS-M![*</ZJ;G%L;>@4@PQT[*7\.5=*,$\O0IG#$]_ZM9%J6G<
M0'$#Q749=I!+QJ'><NGE!ED;9*W+L(&0V"JJT"<92<@&6C\9M,JK-I<3_"CJ
M+:0IZ?Q2)"+QYY'$\)B8*QTAPU>!_7077O,N-Q0I8 ,5X2RC7E$.EJYWW*OD
MI?N=I:KY>^N<C*CGDD4RQ, >DFO!DF+E.YU:H_6Z6UPYN;K ONIV[\/M"_;]
M_P%02P,$%     @ +G..5$SEFBPE"0  [C@  !@   !D<V=X+3(P,C(P,3,Q
M>&5X.3ED-2YH=&WM6VMSV[H1_2NH,KW7F9%$/6S'IAS/R+)RHTYB9VQZFOL1
M(D$1-4BP "A9_?7=!4B9\N/&J1]Q&F4FL@@L@%W@[.(L"!W\K=4:9PG-0A:1
MC\'G3R2289&RS)!0,6J@=,%-0@*9YS0CGYE27 ARI'@T8X3LM[O;[4Y[?[?5
M.CR KD9E&YGY9-OK;GN]3J]'.CO^SCN__XY\^4RV+H+16RM]?#H*_OPR=J-^
MN3CZ-!F11LOS_MD?>=YQ<.PJH/LN"13--#=<9E1XWOBD01J),;GO>8O%HKWH
MMZ6:><&9EYA4;'M"2LW:D8D:AP=8 I^,1H<'*3.4A E5FIGWC8O@0VL/) PW
M@AT>>-5?)SN5T?+P(.)SHLU2L/>-E*H9SUI&YGZ_DYL!M/2@^H;,56O!(Y/X
MW4[G[X.<1A'/9BW!8N/OM/?VKHL4GR6K,NE,\Q43U/ YP[YKO8:"4>5/I4D&
M-P>XJV5>M8ME9EHQ3;E8^K\'/&6:G+ %.9,IS7YONA+XJYGB\>\#*ZWY?QAT
M#>89=F5:5/ 9=(ZZ#IS]/M01_-_MN2\XXG1MQ 6SMDVEB*!R_/7CY&@2D/W]
M]LZ!-X5)RY]!Q1#PRE1-QV^I-1J?!9,/D]$PF)R> /C.SB^&)P$)3LG9Q:<Q
MZ?9IJ[M-I"+=G0B_G7X@P<?Q*S+@?#RZ.)L$D_$Y&7\=?1R>_#$FPU& BG;W
M^]M-,CPGP^/3+\'XN&[>"UI@8;+[,)2 -78A^IU>.=7D?'AV-#P9G[=.OWX:
M_UG9UNMT>D]LP[T:3YID'"VHBL@_VN1L2;,F"9DR/%X2DU#C6QT,G0I&IE)%
M3+UO=!H@(D3IY:MGG=.P?(86"OY'E>IS[#&DHIQ%.Z$08P:+A!O6PH;,S^1"
M42BRCM\'!:LP4@'E*2>B!8'&R-3?O2[!F.=&ZK:MT9Z)ZC;\*&TF)*%S1A2;
M<[: 3<<D7!.:90454)A+96 ?(A^D2LEVI_6!R)@$"2/'3(=4&=#F?*D-2S7Y
M0\DB)Y,L; ^N[?-PH3R[OK_:,O=>U3(?46T9!4F7Y!(F23"@'DVWVN4R1Q(&
MS21P%NB=\@Q0L"1%9E3!0$M@));0P/I3DL*3XH"0F(8&([Q,N2%&.KE; AD+
MF=94+5$DI9<,QJWUJ:$L F5@2($!#<= @9 K8%$@!KQ*@R8 &P)K'29$%_AQ
MW7[!%"L[00-2KF&[QWEVO$LQG;/0*HC]YJ":C,!, !1,RG19GX8->'&D_L\!
M7D9BG@$\$&DU.- ,I*%6U:IY%D,,H\CTX'LHB@BZ!,35EKX):.5*+$D.@$&L
MHP\ 3U^!N<21OC$R^$MD*603)0H! H!@"3"SPSE]0JH3$@NYT!6\N=8%J$BQ
MH&EE0,-F#:&Z4N26IAN0XDC;KPJDP6I)?WNSU^N^&^@2@R7?P6@DXYC#XY9^
M:]=[0JAB%E6 $HY+!P@@3.,R<IU@"Q1+(1AC0,;GB.M02%U .PS32@H'KUQ)
M2#ZA6),M0%3$ )X.-N,KR-8RR#.'$ '/"@$2EIGO;#&GA67G^.0>.5+0S,$:
M^R<8)FMH=PA$71X\4+PV4 P#H9UU'X!:I"'^,^'Z?K#> ,^K=0!,%6]BKI8X
M_*O0B#$8?8N^_4%>\6 5@3M" 8#&;N/?1G03&49("_WP)KC53QF@LQS)D0=9
M*.@ @NN<:QNN08IEMA],1JX#?7VS<,<" />2/3C(-LM-!"LX!'S00TO!(WMP
MHXNIYA&GBJ/RW/$;NW-EV$NAD7/8X* M0;'!76H&RAC82+!13A&(A:"X'X%)
M5H%K[@(M'!.J$SCX-F4H"-L&M&?1<VT3OY([37\R=WIP^+[E50\/_ ]V+G#(
M.8]PBZ-:9A9U%-Q'(:.'PAE5405L<#-.IUQPLT2"=->PZ.+6!RR\G7>NB=8H
MH-U(KTJ#\D+EX%[:$KHP!-Q;!6QN,&,9\#0!7@8U+$?W11'(>YPG@9OS'/:R
MC2\]WI?"5^]+XSD5A8WA"#06QT#W^1P@HF_0]A7'>\!>Y![O9O+6;: A["7:
MY0I369C[1W_(;DE7T@P3H?C;22^95AF6C03,S0+H,\#.-\A_-/*C5X_\8P>L
MVP#%4Z"2V-N:6Q[P'?L&DBP9AH5""-YF-?> TS9+J%[Q,PS6UCE89'<Q*UKN
M,$LB^"43Y5'3#?GFH_1_3F=XM1B_,]?=^?DS;WOJ'56@;UY'0 S(J=0&UAU?
MQ]2"(8;2[Z!7:_G"2C,*.8.12J_8C"V [M*4&\/8/=O,5.([%*B+..AE.]@"
MY(/C:-PUX"]F+)4_L7\7'-1&]>,B"^TIU-M-<OTK)-=# 3P8BCC@G<+ZXP%-
MR!F@LV0BJR1WP>@E4@O'BRVYL(S>GN=7AY??A?DR)W6'6G?$8QI!0\U6X?A.
M_RAS ! 'H ,HFX[;:" VNDAA"F"&K"'E[G#G$>^&M_PJV>\0Z$FL((@V 7W,
MAGW KWT+5 *]Z0@$S^92S!FRB(S.RI=9JMPI6)H+N610NTBDVQOHFAL![!_-
M?]KW -+>@'&H+"?2@;,52B%HKIE??:G/&6(E<1< \$8+#@XF57-FK\O0PLBJ
MP%V6L25K5VHZUY K9;"D=C^F0>R4OV^XRPG6'2H]R_&[#@?W(M^M:=GI+O19
MNZ)Q TNU*SNUSG%&\=V)G_ H8MGJN87.XT\AV%RV%C!GW[P&5*++#ER)TJF6
MHC!LS>BGOQB!?6+E6K=.$"KQT,1%OLK&QB$BK-,?''@HZFYKN-M2Y>=?1INU
M.>^U=S>3_M*3OMO>V4SZ2T]ZO]/>V]],^]--N]VI_C)7_8[H_@PF'^-IG4^&
MN>*"=+>;!"_+WD5:'A$?GT'MW]YT=SN#VY_?J_DW@LQS8^RAJ'I"!WY-)KUV
MYWCFM7IYMWEF@U[>FXZ6_O_H(66.4.5+^16Q+Z#)FX[]][)F>-J[<<]WXR0;
M)WDJ@TYHRA[I)GB&\(-]9-T_2( _E;EY)KMQD_\;@S;,[ E,&B6<Q61\Q<("
MDRURZE[CW'.0YM*6US*SM4PJ69V836EX.5.RR"(\W9/*KT)1[0=JZQ5EEHKG
MH8)GK%4^5\&K_L.XM:.^M:+5+^YR.F,ME\_2V##ET[GD4;G">WOMWO8J9+JR
MCCW8=K_DLS\-//PO4$L#!!0    ( "YSCE0]'9DZ&@D  (LW   8    9'-G
M>"TR,#(R,#$S,7AE>#DY9#8N:'1M[5MM4]NZ$OXKNNG<4SH3QWD!#CB4F1#2
MT\RTT $SI^>C8BNQ+K+E*\D)N;_^[$IV<'@YI05:>IO.-,322MJ5GET]*RL'
M__*\49;0+&(Q>1]^_$!B&14IRPR)%*,&2A?<)"24>4XS\I$IQ84@1XK',T;(
M?JNSW6JW]G<][_  NAJ6;606D&V_L^UWV]TN:>\$.[\'O7WRZ2/9N@B';ZST
M\>DP_.O3R(WZZ>+HPWA(&I[O_]D;^OYQ>.PJH/L."17--#=<9E3X_NBD01J)
M,7G@^XO%HK7HM:2:^>&9GYA4;/M"2LU:L8D;AP=8 I^,QH<'*3.41 E5FIFW
MC8OPG;<'$H8;P0X/_.JODYW(>'EX$/,YT68IV-M&2M6,9YZ1>=!KYZ8/+7VH
MOB%SY2UX;)*@TV[_NY_3..;9S!-L:H*=UM[>=9'BLV15)IUI@6*"&CYGV'>M
MUT@PJH*)-$G_Y@!WM<RK=E.9&6]*4RZ6P>N0ITR3$[8@9S*EV>NF*X&_FBD^
M?=VWTIK_CT'78)YA5\:C@L^@<]2U[^P/H([@_T[7?<$1)VLC+IBU;2)%#)6C
MS^_'1^.0[.^W=@_\"4Q:_@PJ1H!7IFHZ?DFMX>@L'+\;#P?A^/0$P'=V?C$X
M"4EX2LXN/HQ(IT>]SC:1BG1V8OQV^HZ$[T<OR(#ST?#B;!R.1^=D]'GX?G#R
MQX@,AB$JVMGO;3?)X)P,CD\_A:/CNGG?T0(+D]V'H02LL0O1:W?+J2;G@[.C
MP<GHW#O]_&'T5V5;M]WN/K$-]VH\ADD4 H+>D6+&-$G$E.'3)3$)-8%5P-")
M8&0B5<S4VT:[ 2)"E"Z^>M8YC<IG:*'@?USI/<<>(RK**;2S"0&FOTBX81XV
M9$$F%XI"D?7Z'FA7Q9 *)4\Y"QY$&2/38/>Z! .>&ZG3LD;[)J[;\*.T&9.$
MSAE1;,[9 G8<DW!-:)855$!A+I6!38B\DRHEVVWO'9%3$B:,'#,=465 F_.E
M-BS5Y \EBYR,LZC5O[;/QX7R[?K^:LO<?5'+?$2UI1,D79)+F"3!@'<TW6J7
MRQQ+&#230%B@=\HS0,&2%)E1!0,M@8Y8-@/K3TD*3XH#0J8T,AC>9<H-,=+)
MW1+(6,2TIFJ)(BF]9#!NK4\-93$H T,*C&8X!@I$7 &% C$@51HT =@06.LH
M(;K C^OV"Z98V0D:D'(->SW.LR-=BNF<159![#<'U60,9@*@8%(FR_HT;,"+
M(_5^#O R,N49P .15H,#S4 ::E6MFF=3B&$4:1Y\CT010Y> N-K2-P&M7(DE
MR0$PB'7T 2#I*S"7.-(W1@9_B2U_;*)$(4  $"P!9G8XIT]$=4*F0BYT!6^N
M=0$J4BQH6AG0L%E#J*X4N:7I!J0XTO:+ FFX6M+?7NUU.[_W=8G!DN]@-)+3
M*8?'+?W&KO>84,4LJ@ E')<.$$"8QF7D.L$6*)9",,: C,\QUY&0NH!V&*:5
M% Y>N9*0>4*Q)EN J)@!/!UL1E>0JF609 X@ IX5 B0L+=_98DX+2\WQR3UR
MY)^9@S7V3S!,UM#N$(BZ/'B@Z=I 4Q@([:S[ -0B#0F>"=?W@_4&>%ZL V">
M>!-SM:SA/X5&C,'H6_3-#_**!ZL(W!$* #1V&_\RHIO(,"):Z(<WP:U^P@"=
MY4B./,A"00<07.=<VW -4BRS_6 R<AWHZYN%.Q, N)?LP4&V66XB6,$AX(,>
M6@H>VU,;74PTCSE5')7GCM_8G2O#7@J-G,,&!VT)B@WN4C-0QL!&@HURBD L
M!,7]"$RR"EQS%VCAF%"=P,&W"4-!V#:@/8N?:YOXE=QI\I.YTX/#]RVO>GC@
M?[!S@4/.>8Q;'-4RLZBCX#X*&3T4SJB**V"#FW$ZX8*;)1*DNX9%%[<^8.'M
MO'--M$8![49Z51J4%RH']]*6T$41X-XJ8'.#&<N IPGP,JAA.;HOBD#>XSP)
MW)SGL)=M?.GQOA2]>%\:S:DH; Q'H+'I%.@^GP-$] W:ON)X#]B+W./=3-ZZ
M#32$O42[7&$B"W/_Z _9+>E*FF$B-/URTDLF589E(P%SLP#Z]+'S#?(?C?SX
MQ2/_V 'K-D#Q%*@D]K;FE@=\Q;Z!)$M&4:$0@K=9S3W@M,T2JE?\#(.U=0X6
MVUW,BI8[S)((?LE$>=1T0[[Y*/V?TQE>+,;OS'5W?O[,VYYZQQ7HF]<1$ -R
M*K6!=<=W,;5@B*'T*^C56KZPTHQ"SF"DTBLV8PN@NS3EQC!VSS8SD<"5L"[F
MH)?M8 N0#XZC<=> OYBQ5/[$_EMP4!O5GQ999$^AWFR2ZU\AN1X(X,%0Q 'O
M%-8?#V@BS@"=)1-9);D+1B^16CA>;,F%9?3V/+\ZO/PJS)<YJ3O4NB,>TQ@:
M:K8*QW?Z1YD#@#@ '4#9=-Q& ['110I3 #-D#2EWASN/>#>\Y5?)?@= 3Z8*
M@F@3T,=LV ?\VK= )=";CD#P;"[%G"&+R.BL?)FERIV"I;F02P:UBT2ZO8&N
MN1' _M'\IW4/(.WU%X?*<B(=.+U("D%SS8+J2WW.$"N)>_N/UUEP<#"IFC-[
M5X861E8%[J:,+5F[3].^AEPI@R6URS$-8J?\;</=3+#N4.E9CM]Q.+@7^6Y-
MRTYWH<_:_8P;6*K=UZEUCC.*[TZ"A,<QRU;/'CI/,(%@<^DM8,Z^> >H1)<=
MN!*E$RU%8=B:T=6MI/+S'QU[S;QN:_?_VK[=UL[/8=]3WVK!/K%RK5LG")5X
MZ.5VKLK&QB%&B':O?^"CJ+MJ\XV3WFNW]O8WT_YTTV[C[S]F8%\1LY[!Y&,\
M@PK((%=<D,YVD^#]S[NVXD>$HF=0^[=7G=UV__;GUVK^A2#SW!A[**J>T(%?
MDDDOW3F>>:V^O]L\LT'?WYN.EL$W>DC)?*LL(+\B]K4J>=6V_[ZO&;[VZU=7
M-QZR\9"G,NB$INR1/H)I\0]VD(US;)SC&0P*\2=$W^H=WU738<+9E(RN6%1@
MVD1.W6N&>PYZ7 +R4A!0RXF2U8G.A$:7,R6++,;3)ZF"*J[4?CVU7E'FFWA>
M)WC&O/*YBD3U7VVM'46M%:U^#I;3&?-<9DJGAJF SB6/RQ7>VVMUMU?QSY6U
M[5F&^YF9_=W:X=]02P,$%     @ +G..5$@DF. A!P  *"D  !@   !D<V=X
M+3(P,C(P,3,Q>&5X.3ED-RYH=&WM6FU3VT@2_BM]3NTFJ;)>_ (+LD.5,6;#
M50(I+.IV/XZEL367L48[&F&\OWZ[1Y*1#;G-[H4%4E!@['GI>;KGF>Z6>X;_
M<IQ)FK TXC&\#S]^@%A%Q9*G!B+-F<'6E3 )A"K+6 H?N=9"2CC6(EYP@$.W
MTW=]]W#?<8Z&*&I<S5%I 'VOT_>Z?K<+_EZP]U/0[\*GC_#F*AR_M:-/+L;A
MKY\FY:J?KHX_G(VAY7C>?WICSSL)3\H.%-^!4+,T%T:HE$G/FYRWH)48DP6>
MMUJMW%7/57KAA9=>8I:R[TFE<N[&)FX=#:D%7SF+CX9+;AA$"=,Y-^]:5^&I
M<X CC#"2'PV]^G\Y=J;B]=$P%M>0F[7D[UI+IA<B=8S*@IZ?F0'.]+![9\R-
MLQ*Q28*.[_\PR%@<BW3A2#XWP9Y[<'#;I,4BV;2I4K5 <\F,N.8DNR$UDISI
M8*9,,MA=X+Z963UOKE+CS-E2R'7P.A1+GL,Y7\&E6K+T=;MLP?\YUV+^>F!'
MY^)WCJ)1/<-OC,.D6*!PPCHH]0^P#^BOTRW?T(JSK157W.HV4S+&SLDO[\^.
MST(X/'1_&GHS-%KV ! CY"O7#8Q_!FL\N0S/3L_&H_#LXAS)=SF]&IV'$%X\
M(8R= [ARI^[8A>ED;'%V>GM^^\D@7"7"<"?/6,2#3'-GI5F&,V TA=')Q:=P
M<O)(AOU+!*UM>^COP\4IA.\G,!U='H_.)U/GXI</DU]A- ZII^O[W6^LQ [D
M_0WBLQ0BE:8\HM-=.F"3<&!I6C )FF=*&U!S"+'QA.<1TP87GJYSPY<Y_*Q5
MD<%9&KEM8#!F*8L%(XE+=.%KE!+#7&FT0@J9%M?HL$'D><$UO*%5?GQUT.WZ
M@V%1ZVAM'?-(:49XG$A)I8-7OOT9[/9*D?*@2&.NZ=V=;BLSR)44]AR6F(9>
M<627[0S>MC%XP*G22^C[SBDAM;K/!:HI88V^$#A*C^'?#*VAU]#KM('"#"J;
MXS!9ARR:->51H=%'HG5([<D-NO\4 Q>NNT2=R;KX2R-C,D/"-4>S_N-FN+0[
MNFV%%6_#)%XQC9JZ<+G&'2051E+BNV/-C6ECK+:09VN(N#9BOFY#5NB\8!B^
MC8*&!ZFH9#T(V8G%*J- W1Q>#Z*C@%:P]F-ZQE*>.Q<WDJ]A%%G:T5%HTPQ5
M:/B<JA7:?(%P3<),8,^'83/)8:8TZO^NY;<0GY15\-M\)M=1?<89&O_BVM;7
MI [N=W7$K?4P]&[Y'%R7/$X9#WMX>.KH6KNN;WE('8R_1BV#_=L62@7*E3JN
M5=HS<5.'QT(3)B*'DE$P+Z1<VY,OZ0QLSH7FOQ5"<\KS<MK16WZ\86\!CUQG
M[TW\=L."VU.T.4$5%3J'O?Z B'EK 8^VTK,,^(Z)0/'EKNV[C\6$^^%0?! I
MNM"E]3H45 Q#=Q1C*^YL@R=,:"0*AO&<*-&F?H9Y/L[#Q6W,R3/D2-ZNG'&*
M3PS4CA)CFX-:YX2C"EDR2F6\='5YS:+*U[M?8(I-IDNZ5.8I64-^5K(LYT']
MIFD)VNVD#.B4')."J$!M"9MYL\*HNJ',NVW+5G;NWY*F&F.3#$+C2+96136I
MD7RWP%(2\W.;?UCFUL@K1)URO[_(YG+O*J']PQ^:J=<.9QK/ PWA"@7.I5H%
MB8ACGFX^VUPLF.'#V&=GA5;\TV>,BD5VX7HHFV%X*@S?4OK;ISXDDSJWQ)8#
ML?-:Y&(FI##K6L>6C9%^;S#T:&B9CY6/8M7K]N';]2"J]A3=1[3W72/7A_:[
M,O8+P1_,YM9W_L]8><?XE3^M(T9V S;_A#J%_?+F/(!)O-S;26_OBYQ_[_ ^
M -P?7W7V_<'=UZ\ _1<.P4-3[VO)]O\1C%S9([/K&3'K;V_0"^'^6<7&B>!S
M? #"AR$*,' QGPM\['XAUW/0YZF3Z]MOU OI'EV?[R%':WS?^$*ZYZ#/L\[;
M&FR#,MZ>;KYJ>HFWWS<+GX=B+Z1[NOH\==*-,BTD=/IEO?*%4\]!GZT:1?G]
MVQ.!]\!W$&P9L2PKXR[:$@\VS#CN$^3%;"D,U8\Q5^!RO:G29X7.5,ZIY&.+
MCFL:;:N.S0HT=8\3EAFN8;]G+S+0Y2NJ5U>UHJM4D/2I872Q8:QB[L+]@%)E
M:]<S#C'G2YQ3U>WM18"JFF[A5="VRYT'7UGBI)*HPG%Z)5 [5/^_*('6I;E2
ML'*[2F$,-[*4WT9T&M67TH[;QGZ+6*210FS:WIR;K4'S.=<\C:AVATO0G0W4
MABQI[Q/LXKV%V0-UI_<^;=K ;R*>;13@-U0T*Z'3YTN^$+G1="V JGX6,]61
M&T!S$&8+JWOG:^ID4PZ;L>CS0BM$OW-IHG&U;;NC*@%049.N3SC5YSH;;5ZI
MVZKL;35M[NIE;,&=LEC YDBZ@%TK$5>NZ.# [?8W.7#9YMOK?>4=0'NI\.@/
M4$L! A0#%     @ +G..5&-X^)E='P  BX4! !$              ( !
M &1S9W@M,C R,C Q,S$N>'-D4$L! A0#%     @ +G..5)<B'7KW$   M/\
M !4              ( !C!\  &1S9W@M,C R,C Q,S%?8V%L+GAM;%!+ 0(4
M Q0    ( "YSCE3QPT\04W4  &O-"0 5              "  ;8P  !D<V=X
M+3(P,C(P,3,Q7V1E9BYX;6Q02P$"% ,4    "  N<XY4=""LSI*E  #AS0H
M%0              @ $\I@  9'-G>"TR,#(R,#$S,5]L86(N>&UL4$L! A0#
M%     @ +G..5-S5$DOZC@  4O4+ !4              ( ! 4P! &1S9W@M
M,C R,C Q,S%?<')E+GAM;%!+ 0(4 Q0    ( "YSCE2?G:%\;V$  +5B!  5
M              "  2[; 0!D<V=X+3(P,C(P,3,Q>#0P9BYH=&U02P$"% ,4
M    "  N<XY46W8YA?@L 0!6IP@ &               @ '0/ ( 9'-G>"TR
M,#(R,#$S,7AE>#DY9#$N:'1M4$L! A0#%     @ +G..5(%Y#PR(I0( ,^T=
M !@              ( !_FD# &1S9W@M,C R,C Q,S%X97@Y.60R+FAT;5!+
M 0(4 Q0    ( "YSCE2,O)Q--R@   LN   ;              "  ;P/!@!D
M<V=X+3(P,C(P,3,Q>&5X.3ED,C P,2YJ<&=02P$"% ,4    "  N<XY4R2A4
MSW<[  !610  &P              @ $L. 8 9'-G>"TR,#(R,#$S,7AE>#DY
M9#(P,#(N:G!G4$L! A0#%     @ +G..5%/[31!\%0  ?A8  !L
M     ( !W',& &1S9W@M,C R,C Q,S%X97@Y.60R,# W+FIP9U!+ 0(4 Q0
M   ( "YSCE0T[[AO(2$  /,D   ;              "  9&)!@!D<V=X+3(P
M,C(P,3,Q>&5X.3ED,C P.2YJ<&=02P$"% ,4    "  N<XY4G<6<FP4* 0".
MOPD &               @ 'KJ@8 9'-G>"TR,#(R,#$S,7AE>#DY9#,N:'1M
M4$L! A0#%     @ +G..5#_"@VKR!0  -"   !@              ( !)K4'
M &1S9W@M,C R,C Q,S%X97@Y.60T+FAT;5!+ 0(4 Q0    ( "YSCE1,Y9HL
M)0D  .XX   8              "  4Z[!P!D<V=X+3(P,C(P,3,Q>&5X.3ED
M-2YH=&U02P$"% ,4    "  N<XY4/1V9.AH)  "+-P  &
M@ &IQ < 9'-G>"TR,#(R,#$S,7AE>#DY9#8N:'1M4$L! A0#%     @ +G..
M5$@DF. A!P  *"D  !@              ( !^<T' &1S9W@M,C R,C Q,S%X
@97@Y.60W+FAT;5!+!08     $0 1 )P$  !0U0<    !

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